黑马程序员技术交流社区

标题: 我对于泛型的了解 [打印本页]

作者: xgm    时间: 2016-3-17 19:53
标题: 我对于泛型的了解
* 目的:深入了解泛型
* 结论:
*     泛型是提供给javac编译器使用的,用来规定容器可以添加的参数类型。
* 但是编译器编译时会去除泛型(这也就是为什么可以通过反射跳过泛型添加其他属性的值)
*/
public class GenelicTest {

        public static void main(String[] args) throws Exception{
               
                List<String> list = new ArrayList<String>();
                List<Integer> list1 = new ArrayList<Integer>();
               
                System.out.println(list.getClass()==list.getClass());  //结果为true,也就是说他们是同属于一份字节码,字节码不存在泛型。
                //list.add(1);  //编译错误
                list.add("aa");
                list.add("bb");
               
                list.getClass().getMethod("add", Object.class).invoke(list, 1);  //通过反射跳过泛型添加其他类型的值
               
                for(Object val:list){
                        System.out.println(val);
                }
        }
}




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