dreamstone 发表于 2013-1-29 23:54:26

再次证明JDK1.5泛型实现原理

在这篇文章中用Jad说明了JDK1.5中的泛型是擦拭法实现,实际是通过编绎前处理,或者编译器实现的。但有人说Jad还不支持1.5的语法,那么从另一个角度证明一下,就有了这篇文章。

<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee;">http://www.agoit.com/Images/OutliningIndicators/None.gifimport java.util.ArrayList;
http://www.agoit.com/Images/OutliningIndicators/None.gif
http://www.agoit.com/Images/OutliningIndicators/None.gif
http://www.agoit.com/Images/OutliningIndicators/ExpandedBlockStart.gifhttp://www.agoit.com/Images/OutliningIndicators/ContractedBlock.gifpublic class Generic http://www.agoit.com/Images/dot.gif{
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://www.agoit.com/Images/OutliningIndicators/ContractedSubBlock.gif    public static void main(String[] args) http://www.agoit.com/Images/dot.gif{
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        ArrayList list1 = new ArrayList();
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        list1.add("1");
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        String str1 = (String)list1.get(0);
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        ArrayList<String> list2 = new ArrayList<String>();
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        list2.add("1");
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        String str2 = list2.get(0);
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif    }
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif
http://www.agoit.com/Images/OutliningIndicators/ExpandedBlockEnd.gif}
页: [1]
查看完整版本: 再次证明JDK1.5泛型实现原理