ArrayList<Integer> al = new ArrayList<Integer>();
al.getClass().getMethod("add", Object.class).invoke(al, "abc");
System.out.println(al.get(0));
//结果:abc
ArrayList<String> al = new ArrayList<String>();
al.getClass().getMethod("add", Object.class).invoke(al, 69);
System.out.println(al.get(0));
//报错:java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
为了测试我加入了一些语句,全文如下:
import java.util.*;
class Test2
{
public static void main(String[] args) throws Exception
{
ArrayList<Integer> al = new ArrayList<Integer>();
al.getClass().getMethod("add", Object.class).invoke(al,"abc");
//al.get(0);
//Integer in = al.get(0);
//System.out.println(in);
System.out.println(al.get(0));
ArrayList<String> al2 = new ArrayList<String>();
al2.getClass().getMethod("add", Object.class).invoke(al2, new Test1());
//al2.get(0);
//String str = al2.get(0);
//System.out.println(str);
System.out.println(al2.get(0));
}
}
class Test1
{
public String toString(){
return "abcd";
}
}