Java 反射:如何正确调用没有参数的方法?

Java 反射:如何正确调用没有参数的方法?,java,reflection,methods,invoke,Java,Reflection,Methods,Invoke,我试图通过Java反射调用一个方法,该方法没有任何参数,如下所示: Method getSelectedCriteriaMethod = multipleSorting.getClass().getDeclaredMethod("getSelectedCriteria", null); EstimateSortField selectedCriteria = (EstimateSortField)getSelectedCriteriaMethod.invoke(multipleSorting,

我试图通过Java反射调用一个方法,该方法没有任何参数,如下所示:

Method getSelectedCriteriaMethod = multipleSorting.getClass().getDeclaredMethod("getSelectedCriteria", null);
EstimateSortField selectedCriteria = (EstimateSortField)getSelectedCriteriaMethod.invoke(multipleSorting, null);
这是可行的,但我收到编译器警告:

warning: non-varargs call of varargs method with inexact argument type for last parameter;
cast to java.lang.Class<?> for a varargs call
non-varargs call of varargs method with inexact argument type for last parameter;
cast to java.lang.Object for a varargs call
警告:varargs方法的非varargs调用,最后一个参数的参数类型不准确;
强制转换为java.lang.Class以进行varargs调用
最后一个参数的参数类型不精确的varargs方法的非varargs调用;
为varargs调用强制转换为java.lang.Object
调用没有任何参数的方法的正确方法是什么?

您可以简单地说

selectedCriteria.invoke(multipleSorting);

我尝试了同样的方法,得到了
注意:file.java使用未经检查或不安全的操作。注意:使用-Xlint:unchecked重新编译以获取详细信息。
并且在启用lint
警告时:[unchecked]未选中对getDeclaredMethod(String,Class…)的调用,作为原始类型类的成员。
@jcubic似乎做了类似
Class cls而不是
类cls。如果我猜错了,也许你可以问另一个问题。
getDeclaredMethod("getSelectedCriteria");
invoke(multipleSorting);