0

从另一个类调用方法时遇到问题。这是我正在使用的代码:

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:参数数量错误

我必须添加哪些论据?

4

1 回答 1

2

为什么要使用反射来调用静态方法?假设Contactimplements Comparable,你为什么不打电话

Sorting.selectionSort(database);

? 如果您必须使用反射,则必须传递对象以调用方法,在您的情况下null

 method.invoke(null, database);

看到这个问题

于 2017-09-22T08:55:39.033 回答