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()。它显示该方法的最后一个参数是否是可变的