Questo è il mio codice di esempio in cui sto ricevendo l'avviso.Ho ricevuto questo avviso: chiamata non varargs del metodo varargs con tipo di argomento inesatto per l'ultimo parametro;
Class aClass = Class.forName(impl);
Method method = aClass.getMethod("getInstance", null);
item = (PreferenceItem) method.invoke(null, null);
L'avvertimento:
avvertimento: chiamata non varargs del metodo varargs con inesatta tipo di argomento per ultimo parametro; cast a java.lang.Class per una chiamata varargs cast a java.lang.Class [] per una chiamata non varargs e per sopprimere questo avviso metodo method = aClass.getMethod ("getInstance", null);
si prega di aiutarmi a risolvere questo problema
Grazie Jon che l'avviso ha ape n goon ............ Ho appena cambiato il mio codice come suggerisci aClass.getMethod ("getInstance"); – Mohsin
Se qualcuno si chiedesse (come me), sembra che il valore predefinito sia null come l'intero array 'Classe > []', non un singolo elemento nullo all'interno di un array (almeno in base alle risposte pubblicate qui: http: // stackoverflow.com/questions/4028059/calling-java-varargs-method-with-single-null-argument). Ovviamente, è probabilmente una buona pratica lanciare per la specificità, ma è bene sapere quando si valuta se i metodi di refactoring devono essere considerati come l'ultimo argomento in varargs. –
Dove nel JLS è la logica per il fatto che in questo esempio un cast a 'Classe >' produrrebbe una matrice con un singolo elemento 'null' ?. –