Das argument des Typs null sollte explizit umgewandelt werden, um die Klasse<?>[] für den Aufruf von varargs-Methode

Bitte haben Sie einen Blick auf das folgende Beispiel, der erste Anruf zu getMethod() erzeugt eine Warnung in Eclipse. Die zweite funktioniert nicht und bricht mit einer NoSuchMethodException.

Dem argument des Typs null sollte explizit umgewandelt werden Class<?>[] für den Aufruf von varargs-Methode getMethod(String, Class<?>...) vom Typ Class<Example>. Es könnte alternativ eine Umwandlung in der Klasse für eine varargs-Aufruf.

Ich folgte der Warnung und nichts funktionierte mehr.

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);
 }
}

Der zweite Aufruf erzeugt diese Fehlermeldung:

Exception in thread "main" java.lang.NoSuchMethodException: 
    Example.exampleMethod(null)
        at java.lang.Class.getMethod(Class.java:1605)
        at Example.main(Example.java:12)

Kann mir jemand erklären, dies Verhalten zu mir? Was ist der richtige Weg um die Warnung?

InformationsquelleAutor der Frage codevour | 2011-04-07

Schreibe einen Kommentar