java - reciben - Tengo esta advertencia: método de llamada varargs no varargs con tipo de argumento inexacto para el último parámetro;
metodos que reciben parametros en java (1)
Este es mi código de muestra donde recibo la advertencia.
Class aClass = Class.forName(impl);
Method method = aClass.getMethod("getInstance", null);
item = (PreferenceItem) method.invoke(null, null);
La advertencia:
advertencia: método de llamada varargs no varargs con tipo de argumento inexacto para el último parámetro; enviar a java.lang.Class para una invocación varargs a java.lang.Class [] para una llamada no varargs y suprimir esta advertencia Método method = aClass.getMethod ("getInstance", null);
por favor ayudame a resolver este problema
Bueno, la advertencia del compilador le dice todo lo que necesita saber. No sabe si tratar null
como una Class<?>[]
Para pasar directamente a getMethod
, o como una entrada null
única en una nueva matriz de Class<?>[]
. Sospecho que quieres el comportamiento anterior, así que envía el null
a la Class<?>[]
:
Method method = aClass.getMethod("getInstance", (Class<?>[]) null);
Si quisiera crear una Class<?>[]
Con un elemento nulo, lo lanzaría a la Class<?>
:
Method method = aClass.getMethod("getInstance", (Class<?>) null);
Alternativamente, podría eliminar el argumento por completo y dejar que el compilador construya una matriz vacía:
Method method = aClass.getMethod("getInstance");