Reflection 可变参数的差异和反射的数组定义
我有以下两段代码:Reflection 可变参数的差异和反射的数组定义,reflection,parameters,variadic,Reflection,Parameters,Variadic,我有以下两段代码: public class C { public void method1(String[] args) { } public void method2(String... args) { } } 然后使用反射获得上述方法的方法实例 Method m1 = nil; Method m2 = nil; Class c = Class.forName("C"); for (Method m : c.getMethods()) { if
public class C {
public void method1(String[] args) {
}
public void method2(String... args) {
}
}
然后使用反射获得上述方法的方法实例
Method m1 = nil;
Method m2 = nil;
Class c = Class.forName("C");
for (Method m : c.getMethods()) {
if (m.getName().equals("method1")) m1 = m;
if (m.getName().equals("method2")) m2 = m;
}
m1.getParameters()和m2.getParameters()返回的值等于类实例的列表。
m1的参数和m2的参数都表示为数组。但事实上它们是不一样的。编译器将不允许
m1("a", "b");
问题是:
是否有任何标志指定参数是可变的还是仅为正则数组?类java.lang.reflect.Method具有方法isVarArg()。它显示该方法的最后一个参数是否是可变的