import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Iterator;
/*
* Test3--ArrayList<Integer> list = new ArrayList<Integer>();
* 在这个泛型为Integer的ArrayList中存放一个String类型的对象。
*
* 思路:在Integer类中有一个方法,Integer.parse(String str);该方法可以将字符串转化成Integer类型。
* 但是该方法有个局限,只能接收数字字符串,如果字符串中存在非数字的,就会报错。
* 那么只能通过反射的方法来在编译时期,骗过编译器。
* */
public class Test3 {
public static void main(String[] args) throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{
ArrayList<Integer> al = new ArrayList<Integer>();
Class clazz = al.getClass();
Method method = clazz.getMethod("add",Object.class);
method.invoke(al,"abc1");
//System.out.println(obj);
method.invoke(al,"abc2");
method.invoke(al,"abc3");
method.invoke(al,"abc4");
Iterator it = al.iterator();
while(it.hasNext()){
Object obj = it.next();
System.out.println(obj);
}
}
} |
|