Ok, quindi sto chiamando un metodo con una firma (Class<? extends Throwable>... exceptions)
e ho ottenere un "File.java utilizza operazioni non controllate o non sicure" warning qui nel metodo principale:Perché l'operazione varargs (Classe <? Extends Throwable> ... t) "non selezionata o non sicura"?
public class VarargsFun {
public void onException(Class<? extends Throwable>... exceptions) { }
public static void main(String[] args) {
new VarargsFun().onException(IllegalArgumentException.class);
}
}
Non dovrebbe il compilatore in grado di vedere che IllegalArgumentException
estende effettivamente RuntimeException
, Exception
e Throwable
?
Come devo modificare correttamente il mio codice per eliminare questo avviso?
Non mi sento come istanziare le mie eccezioni ... sembra più bello di utilizzare la .class
(non voglio usare @SuppressWarnings
sia!)
sto usando Java 7. Grazie per eventuali suggerimenti .
Sei sicuro che l'avviso provenga da "thenThrow" e non "when'? Come viene dichiarato 'mockQuery'? È una simulazione di una classe generica? –
Ok ho cambiato il codice in un esempio testabile. – vikingsteve