读书人

关于ArrayList解决思路

发布时间: 2013-09-25 11:02:58 作者: rapoo

关于ArrayList
ArrayList<Integer> list = new ArrayList<Integer>(); 在这个泛型为Integer的ArrayList中存放一个String类型的对象。


这道题求大神给思路
[解决办法]

引用:
Quote: 引用:

ArrayList<Integer> list = new ArrayList<Integer>();
Method add = ArrayList.class.getDeclaredMethod("add", Object.class);
add.invoke(list, "csdn");
System.out.println(list.get(0));

居然可以啊,原理是什么呢??Arraylist并没有提供添加object类型的参数啊?
public boolean add(E e) {}
public void add(int index, E element) {}

Java的泛型是伪泛型,基本是在编译器实现的,在生成的字节码中是不包含泛型中的类型信息的。。这种机制好像是叫类型擦除,在这你打印一下就知道了
Method[] method = ArrayList.class.getMethods();
for(Method m : method){
System.out.println(m);
}

读书人网 >J2SE开发

热点推荐