package cn.itcast.day1;
import java.lang.reflect.Method;
public class Test {
public static void main(String[] args)throws Exception{
Method m = ReflexPoint.class.getMethod("read", String[].class);
String[] s = {"a","b","c"};
ReflexPoint rfl = new ReflexPoint();
m.invoke(rfl,new Object[]{s}); //这里要包装个数组
}
}
class ReflexPoint{
public void read(String[] args){
System.out.println("String");
}
}
package cn.itcast.day1;
import java.lang.reflect.Method;
public class Test2 {
public static void main(String[] args) throws Exception{
Method m = Key.class.getMethod("read",int[].class);
int[] i = {1,2,3};
Key key = new Key();
m.invoke(key, i); //这为什么只传int[] i ;就可以了
}
}
class Key{
public void read(int[] is){
System.out.println("int");
}
}
第段代码中m.invoke(rfl,new Object[]{s}); 参数数组s因为要兼容1.4所以在外面再加了层数组,
而第段代码中m.invoke(key, i);参数int[] i ; 却可以不同包装数组。
很模糊说不清感觉,求解
|