çağrılması için açıkça Sınıf [] 'a atılmalıdır. Lütfen aşağıdaki örneğe bakın, ilk çağrı getMethod()
, Eclipse'de bir Uyarı üretir. İkincisi çalışmıyor ve NoSuchMethodException
ile başarısız.narar türü null argümanı, varargs yönteminin
The argument of type
null
should explicitly be cast toClass<?>[]
for the invocation of the varargs methodgetMethod(String, Class<?>...)
from typeClass<Example>
. It could alternatively be cast to Class for a varargs invocation.
Uyarıyı izledim ve artık hiçbir şey çalışmadı.
Exception in thread "main" java.lang.NoSuchMethodException:
Example.exampleMethod(null)
at java.lang.Class.getMethod(Class.java:1605)
at Example.main(Example.java:12)
biri bana bu davranışı açıklayabilir:
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);
}
}
ikinci çağrı bu hatayı üretir? Uyarıdan kaçınmanın doğru yolu nedir?
Dökümlü bir "null", yayınlanmamış bir "null" dan nasıl farklıdır? Bunu JDK kaynak kodunda göremiyorum. – codevour
Lütfen güncellenen gönderiye bakın. – StKiller