Какие аргументы добавить при вызове метода

У меня проблема при вызове метода из другого класса. Это код, который я использую:

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);

Смотрите этот вопрос

Другие вопросы по тегам