【发布时间】:2018-03-03 18:41:54
【问题描述】:
我在调用另一个类的方法时遇到问题。这是我正在使用的代码:
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:参数数量错误
我必须添加哪些参数?
【问题讨论】:
-
你的
Contact类是什么样的? -
Contact是否实现Comparable? -
方法是
public static所以这里不需要使用反射。只需致电ClassName.selectionSort(database)。 -
@Tobias Geiselmann 这就是 Contact 类的样子
public class Contact implements Comparable { private String firstName, lastName, phone; public Contact (String first, String last, String telephone) { firstName = first; lastName = last; phone = telephone; } -
@QBrute 我正在尝试从字符串输入中调用一个方法,这样我就可以一次性遍历许多不同的方法
标签: java invoke illegalargumentexception getmethod