java泛型
2016-04-13 15:32
211 查看
package com.imooc.reflect; import java.lang.reflect.Method; import java.util.ArrayList; public class MethodDemo4 { public static void main(String[] args) { ArrayList list = new ArrayList(); ArrayList<String> list1 = new ArrayList<String>(); list1.add("hello"); //list1.add(20);错误的 Class c1 = list.getClass(); Class c2 = list1.getClass(); System.out.println(c1 == c2); //反射的操作都是编译之后的操作 /* * c1==c2结果返回true说明编译之后集合的泛型是去泛型化的 * Java中集合的泛型,是防止错误输入的,只在编译阶段有效, * 绕过编译就无效了 * 验证:我们可以通过方法的反射来操作,绕过编译 */ try { Method m = c2.getMethod("add", Object.class); m.invoke(list1, 20);//绕过编译操作就绕过了泛型 System.out.println(list1.size()); System.out.println(list1); /*for (String string : list1) { System.out.println(string); }*///现在不能这样遍历 } catch (Exception e) { e.printStackTrace(); } } }
相关文章推荐
- jackson、Gson反序列化 泛型
- Java反射随记
- JAVA泛型—— 3fe8 转
- JAVA泛型详解——转
- AS3中的反射(速记) 分析
- 编写高质量代码改善C#程序――使用泛型集合代替非泛型集合(建议20)
- 简单学习C#中的泛型方法使用
- C# 反射(Reflection)的用处分析
- C#通过反射创建自定义泛型
- C#泛型用法实例分析
- 通俗易懂的C#之反射教程
- C#根据反射和特性实现ORM映射实例分析
- C语言泛型编程实例教程
- 深入反射生成数组的详解
- C#利用反射来判断对象是否包含某个属性的实现方法
- C# 泛型的简单理解(安全、集合、方法、约束、继承)分享
- C#泛型Dictionary的用法实例详解
- C#利用反射技术实现去掉按钮选中时的边框效果
- C#泛型和反射实例解析
- python反射