JAVA泛型

来源:互联网 发布:韩火火淘宝店的模特 编辑:程序博客网 时间:2024/06/05 01:03
说道泛型 
我发现网上很多博客都写的太烂。。什么擦除什么之类 感觉很让人费解  我感觉要完全理解JAVA的泛型 估计要懂点编译技术就行(我不懂)当然我懂的一些都是建立再看了些东西 然后自己总结猜想出来的  感觉JAVA有个强大的编译器 再我们写代码的时候 做了很多工作
包括 检查  还有变换代码的形式  
http://qiemengdao.iteye.com/blog/1525624 比如这篇博客上提到的列子
List myIntList=new LinkedList(); //1  
myIntList.add(newInteger(0)); //2  
list 对于加进去的东西  到编译好的时候都是 object 
Integer x=(Integer)myIntList.iterator().next(); //3 
这里不加cast不让你通过  就算让你这样编译好 然后跑起来是有漏洞的 比如如果add了一个 string 你直接赋给一个 integer


    List<Integer> myIntList=newLinkedList<Integer>(); //1’ 
这里虽然你写了 Integer 编译好的代码仍然是 object 
    myIntList.add(new Integer(0)); //2’  
(如果这里 你写myIntList.add(new String()); //2’  编译器会检查出来直接报错  之间你如果没有定义integer 那么里面加什么都可以 但是你写了 编译器会检查);
    Integerx=myIntList.iterator().next(); //3’  
这里编译好了 编译器会自动给你加一个 (cast)
我只是认为是这样  反正 要想有个编译器 被背后做很多工作就是了
0 0
原创粉丝点击