本帖最后由 Friendy89 于 2013-8-22 09:47 编辑
通过反射可以往某个泛型集合中加入其它类型的数据,但是我往String类型的集合中添加Integer类型的数据为什么还会提示ClassCastException,- import java.util.ArrayList;
- public class GenericDemo {
- public static void main(String[] args) {
- ArrayList<Integer> coll1 = new ArrayList<Integer>();
- ArrayList<String> coll2 = new ArrayList<String>();
- //通过反射的方式往coll1中存储String类型的对象。//这个没问题
- coll1.getClass().getMethod("add", Object.class).invoke(coll1, "abc");
- System.out.println(coll1.get(0));
- //通过反射的方式往coll1中存储String类型的对象。//跟上面一样的代码为什么会出现异常
- coll2.getClass().getMethod("add", Object.class).invoke(coll2, 2);
- System.out.println(coll2.get(0));
- }
- }
复制代码 |
|