- - 还是自己来吧,观察测试了一段时间,自己发现问题了,原来ArrayList中有两个add方法,for循环了以后会读出两个方法来,两个方法参数不一样,但是名字一样,这样传参数到第二个add方法的时候可能就出现问题了,而且我只要第一个方法,所以如果找到第一个add方法的话,就可以终止循环了。
public class SaveString {
public static void main(String[] args) throws IllegalArgumentException,IllegalAccessException, InvocationTargetException {
List<Integer> list = new ArrayList<Integer>();
String str = "String";
int o = 2;
Method[] method = list.getClass().getMethods();
for (int i = 0; i < method.length; i++) {
//System.out.println(method[i]);
if (method[i].getName().equals("add")) {
method[i].invoke(list, o);
method[i].invoke(list, str);
break; //因为list对象的方法中,有两个名字都为add的方,所以一旦找到第一个add方法,就可以终止循环。
}
}
System.out.println(list);
}
}
|