上代码:
package cn.itcast.first;import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.*;
public class Generics {
public static void main(String[] args) throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException
{
ArrayList<String> conn = new ArrayList<String>();
conn.add("I");
conn.add("Miss");
conn.add("You");
System.out.println("-->"+conn.getClass().getName());
Method m = conn.getClass().getMethod("add",String.class);
m.invoke(conn,"SoMuch");
System.out.println(conn.get(3));
}
}
报一个叫 java.lang.NoSuchMethodException的异常,把Method m = conn.getClass().getMethod("add",String.class);
改成Method m = conn.getClass().getMethod("add",Object.class);又没事了。
Method里面不是填方法的名和方法的参数类型吗?为什么String不行?
我如果想要得到set(int index,String element)方法,我要怎么写
Method me = conn.getClass().getMethod("set",int.class,Object.class);也是报那个异常。。
|