关于ArrayList 这题谁出的,太没节操了怎么做很容易,首先用反射可以做,不用反射顶着编译器警告也可以做:List list2 = list;list2.add("abc"); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼上说的对,java中的泛型是伪泛型 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) {} 居然可以啊,原理是什么呢??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); } 居然可以啊,原理是什么呢??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); }涨知识了 http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/5.gif String str;...list.add(Integer.parseInt(str)); 居然可以啊,原理是什么呢??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); }NB长见识了 不知道有啥意思 为啥不直接NEW ArrayList<String> list = new ArrayList<String>(); 求深意? list.getClass().getMethod("add", Object.class).invoke(collection2,"xxxx");这个是破坏泛型,出题的老师脑子被门夹过了,他是要放弃人家辛苦搞出来的泛型,回家玩数组啊。 真nb,这样都可以,都是人才啊。但是.getClass()后会报错,求解?ArrayList<Integer> list = new ArrayList<Integer>();Method add = ArrayList.class.getDeclaredMethod("add", Object.class);add.invoke(list, "csdn");List list2 = list;list2.add("abc");System.out.println(list); // [csdn, abc]System.out.println(list.get(0).getClass()); // java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer 居然可以啊,原理是什么呢??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); }涨姿势了 个人感觉add添加的实际上还是Object,泛型作用只是对添加的内容进行了形式限制 JAVA 动态 调用C++ 无数遍地看了生产者消费者的代码,但自己编写总会有问题,大家看看我的半段代码如何思考下去?? 不同模块调用之间的数据库异常如何处理 java中的架构问题 求linux下用runtime.getruntime().exec()打开文件的全代码 我可不可以将一个Image对象写到一个文件中 我的程序运行时出错,怎么也改不好,求救 100分,请教高手!一个主类文件对多个子类的动态调用。 请问有没有用java分析二进制文件(有文件格式的)的例子,多谢了!!!!! 谁用java作过his?高分赠送! 安装netbeans IDE 7.3.1是的问题 IO流,求解答
Method add = ArrayList.class.getDeclaredMethod("add", Object.class);
add.invoke(list, "csdn");
System.out.println(list.get(0));
public boolean add(E e) {}
public void add(int index, E element) {}
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);
}
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);
}
涨知识了
...
list.add(Integer.parseInt(str));
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);
}
NB长见识了
这个是破坏泛型,出题的老师脑子被门夹过了,他是要放弃人家辛苦搞出来的泛型,回家玩数组啊。
Method add = ArrayList.class.getDeclaredMethod("add", Object.class);
add.invoke(list, "csdn");
List list2 = list;
list2.add("abc");
System.out.println(list); // [csdn, abc]
System.out.println(list.get(0).getClass()); // java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
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);
}
涨姿势了