这个题目有两种解法,第一种利用反射来解决:
//ArrayList<Integer> list = new ArrayList<Integer>();
//在这个泛型为Integer的ArrayList中存放一个String类型的对象。
public class Demo7 {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
try {
Class clazz=list.getClass();
Method me=clazz.getMethod("add",Object.class);
me.invoke(list, "abc");
System.out.println(list);
} catch (Exception e) {
e.printStackTrace();
}
}
}
第二种可以利用新建一个没有泛型的引用,然后通过此引用绕开泛型的限制:
public class Demo7 {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
ArrayList list2=list;
list2.add("abc");
}
}