Аргумент типа null должен быть явно приведен к Class [] Для вызова метода varargs

Взгляните на следующий пример, первый вызов getMethod () вызывает предупреждение в Eclipse. Второй не работает и выдает ошибку NoSuchMethodException .

Аргумент типа null должен быть явно приведен к Class [] для вызова метода varargs getMethod (String, Class . ..) из типа Class . В качестве альтернативы его можно преобразовать в Class для вызова 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)

Может ли кто-нибудь объяснить мне такое поведение? Как правильно избежать предупреждения?

16
задан BalusC 5 August 2015 в 07:38
поделиться