5
Non capisco perché sto ricevendo un avviso con il seguente codice:Perché ricevo un avviso non controllato?
public static boolean isAssignableFrom(Class clazz, Object o) {
return clazz.isAssignableFrom(o.getClass());
}
chiamata non controllato a
isAssignableFrom(Class<?>)
come membro di tipo grezzojava.lang.Class
Quando uso il isInstance
metodo invece (che fornisce risultati identici da quello che ho capito), non ricevo un avviso:
public static boolean isAssignableFrom(Class clazz, Object o) {
return clazz.isInstance(o);
}
Grazie! La risposta lo ha chiarito. Ma penso che sarebbe meglio lasciare il 'Object o' in posto invece di usare un parametro di tipo lì per essere in grado di controllare con qualsiasi oggetto in fase di esecuzione, non è vero? – Revolutionair
Non proprio, dopo la cancellazione del tipo il codice è lo stesso in fase di esecuzione (beh, c'è un cast implicito nel mio esempio). –
Diciamo che ho 3 classi: 'Parent',' Child extends Parent', 'RandomClass'. Con il parametro type potrei controllare se Child è assegnabile da Parent ma non sarei in grado di farlo per RandomClass ('isAssignableFrom (Parent.class, new RandomClass());') – Revolutionair