null 类型的参数应显式转换为 Class<?>[] 以调用 varargs 方法
2022-09-02 23:31:42
请看一下下面的例子,这是在 Eclipse 中生成警告的第一个调用。第二个不起作用,并且失败,并带有 .getMethod()
NoSuchMethodException
类型的参数应显式转换为,以便从类型 调用 varargs 方法。也可以将其转换为类以进行 varargs 调用。
null
Class<?>[]
getMethod(String, Class<?>...)
Class<Example>
我遵循警告,没有任何效果。
import java.lang.reflect.Method;
public class Example
{
public void exampleMethod() { }
public static void main(String[] args) throws Throwable
{
Method defaultNull = Example.class.getMethod("exampleMethod", null);
Method castedNull = Example.class.getMethod("exampleMethod", (Class<?>) null);
}
}
第二个调用产生此错误:
Exception in thread "main" java.lang.NoSuchMethodException:
Example.exampleMethod(null)
at java.lang.Class.getMethod(Class.java:1605)
at Example.main(Example.java:12)
有人可以向我解释这种行为吗?避免警告的正确方法是什么?