Обратите внимание на следующий пример: первый вызов getMethod()
вызывает предупреждение в Eclipse. Второй не работает и не работает с NoSuchMethodException
.
Аргумент типа
null
должен быть явно добавлен кClass<?>[]
для вызова метода varargsgetMethod(String, Class<?>...)
из типаClass<Example>
. В качестве альтернативы он может быть передан классу для вызова varargs.
Я следил за предупреждением и ничего больше не работал.
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)
Может кто-нибудь объяснить мне такое поведение? Какой правильный способ избежать предупреждения?