Java--反射(五)从反射看泛型集合的本质
2017-10-20 20:58
148 查看
泛型的本质是为了在编译前防止错误参数的输入,在运行过程中无效
首先,由于反射机制是在编译后进行的,Class对象就相当于字节码文件,验证:ArrayList a1 = new ArrayList(); a1.add("CSDN"); ArrayList<String> a2 = new ArrayList(); Class c1 = a1.getClass(); Class c2 = a2.getClass(); System.out.println(c1==c2); //true
而我们如果可以通过反射机制来在a1添加一个非String类型的对象,则可证明标题的观点。验证:
Class c = a1.getClass(); try { Method m = c.getMethod("add", Object.class); m.invoke(a,100); for (Object obj:a){ System.out.println(obj.toString()); } } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } //CSDN //100
拓展
我们可以引用反射机制来创建一个有着不同数据类型的ArrayList对象。
以上大部分内容来源于慕课网的”反射——Java高级开发必须懂的”课程,网址是http://www.imooc.com/learn/199,感谢Cedar老师的辛勤付出!
相关文章推荐
- Java--Reflect(反射)专题6——通过反射了解集合泛型的本质
- java反射--通过反射了解集合泛型的本质
- JAVA通过反射了解集合泛型本质
- Java 反射:Class类,动态加载类获取方法和成员变量构造信息,方法反射的基本操作,集合泛型的本质
- Java反射(六)-Java通过反射了解集合泛型的本质
- 24、Java入门—反射之通过反射了解集合泛型的本质
- Java反射了解集合泛型的本质
- java反射之通过反射了解集合泛型的本质
- Java反射(六)----- 通过反射了解集合泛型的本质
- java反射之通过反射了解集合泛型的本质(详解)
- Java反射--通过反射了解集合泛型的本质
- java中通过反射了解泛型的本质
- 反射:集合泛型的本质
- 通过反射了解集合泛型的本质
- java反射:通过Method、Class发现泛型的本质
- 通过反射了解集合泛型的本质
- 利用泛型和反射对Java对象集合转换成Json的工具类
- [javaEE] 反射-通过反射了解集合泛型本质
- 01-java基础加强,eclipse工具使用,快捷键,断点调试,单元测试,jdk5新特性,增强for循环,集合map,list,可变参数,枚举,反射,泛型
- Java反射与泛型的本质