黑马程序员技术交流社区

标题: java泛型学习 [打印本页]

作者: javamov    时间: 2013-8-18 19:09
标题: java泛型学习
    一般的类和方法,只能使用具体的类型:要么是基本类型,要么是自定义的类。
如果要编写可以应用于多种类型的代码,这种刻板的限制对代码的束缚就会很大。
ArrayList  collection1=new ArrayList();
ArrayList<String> collection2=new ArrayLIst();
这就是java泛型的核心概念:告诉编译器想使用什么类型,然后译器帮你处理一切细节。
====================================================================
Arr1和arr2 编译完以后 ,编译器编译带类型说明的集合时会去掉
“类型”信息,使程序运行效率不受影响,对于参数化的泛型类型,
getClass()方法的返回值和原始类型完全一样。
ArrayList<Integer> arr1=new ArrayList<Integer>();
ArrayList<String>  arr2=new ArrayList<String>();
System.out.println(arr1.getClass()==arr2.getClass());
true
====================================================================
泛型是给编译器看的,我也可以穿过编译器。(例如:)       
ArrayList<Integer> arr=new ArrayList<Integer>();
               
arr.getClass().getMethod("add", Object.class).invoke(arr, "123");
               
System.out.println(arr.get(0));
123
====================================================================








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2