varargs reciben que parametros metodos metodo indefinidos enviar con argumentos java

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