黑马程序员技术交流社区
标题:
实现绕过泛型检测的例子
[打印本页]
作者:
fmi110
时间:
2015-9-26 15:41
标题:
实现绕过泛型检测的例子
a
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
public class ReflectionDemo {
/**
* 给List<Integer> 存入String
*/
public static void main(String[] args) {
// 需要绕过泛型检测,所以通过反射实现
List<Integer> list = new ArrayList<Integer>();
Class c = list.getClass();// 获取Class对象
list.add(5);
// list.add("hehe");//无法添加字符串
try {
Constructor con = c.getDeclaredConstructor();// 获取构造函数
List l = (List) con.newInstance();// 并创建实例
// 获取方法
Method add = c.getDeclaredMethod("add", Object.class);
// 添加字符串
add.invoke(list, "Hello");
add.invoke(list, "Java");
System.out.println(list);
} catch (Exception e) {
e.printStackTrace();
}
}
}
复制代码
[5, Hello, Java]
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2