У меня есть следующие два фрагмента кода:
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");
Вопрос:
Есть ли какой-либо флаг, указывающий, является ли параметр переменным или просто обычным массивом?