public static void main(String[] args) throws Exception{
ArrayList<Integer> list = new ArrayList<Integer>();
String str="I'm a String";
Integer i = 7;
Method m = list.getClass().getMethod("add", Object.class);//得到add方法对象
//利用正常方式添加Integer类型的对象
list.add(i);
//利用反射的方式添加
m.invoke(list, i);
//正常方法没法添加泛型不符合的对象
//list.add(str);
//利用反射的方法则可以添加
m.invoke(list, str);//通过反射来执行list的第一个方法,第一个是list对象,代表该对象的方法,第二个是方法参数
for (Object obj : list) {
System.out.println(obj);
}
} |