Какие аргументы добавить при вызове метода
У меня проблема при вызове метода из другого класса. Это код, который я использую:
Contact[] database=players1();
System.out.println(sortalg[i]);
try {
Method method = Sorting.class.getMethod("selectionSort", Comparable[].class);
method.invoke(database);
}
Это метод, который я хочу вызвать:
public static void selectionSort (Comparable[] data)
{
int min;
for (int index = 0; index < data.length-1; index++)
{
min = index;
for (int scan = index + 1; scan < data.length; scan++)
if (data[scan].compareTo(data[min]) < 0)
min = scan;
swap(data, min, index);
}
}
И это ошибка, которую я получаю:
java.lang.IllegalArgumentException: неверное количество аргументов
Какие аргументы я должен добавить?
1 ответ
Почему вы используете отражения для вызова статического метода? Если предположить, Contact
инвентарь Comparable
почему бы тебе просто не позвонить
Sorting.selectionSort(database);
? Если вам нужно использовать отражения, вы должны передать объект для вызова метода, который в вашем случае null
:
method.invoke(null, database);
Смотрите этот вопрос