Ho ricevuto un messaggio di avviso su Object Casting durante la compilazione del mio codice. Non ho idea di come risolvere il problema con la mia conoscenza attuale .... Diciamo che ho un oggetto generico MyGenericObj<T>
è si estende da un oggetto non generico MyObj
Qual è il modo corretto per verificare il tipo di oggetto per l'oggetto generico?
Ecco un codice di esempio:
MyObj obj1 = new MyGenericObj<Integer>();
if (obj1 instanceof MyGenericObj) {
//I was trying to check if it's instance of MyGenericObj<Integer>
//but my IDE saying this is wrong syntax....
MyGenericObj<Integer> obj2 = (MyGenericObj<Integer>) obj1;
//This line of code will cause a warning message when compiling
}
Potrebbe per favore farmi sapere qual è il modo corretto di farlo?
Qualsiasi aiuto è apprezzato.
Primo grazie per il vostro aiuto. Quindi intendi nell'oggetto 'theClass', hai un posto dove salvare il tipo di oggetto, quindi lo paragoniamo a 'Integer.class'? – user2296188
@ user2296188 In sostanza, sì, si scrive qualcosa come: 'if (i instanceof MyGenericObject && ((MyGenericObject) i) .getTypeArg() == Integer.class) {...}'. Dai un'occhiata a questa demo su ideone ([link] (http://ideone.com/j85Uj9)) per un esempio funzionante. – dasblinkenlight
L'ho capito ora ~~ Grazie mille !!! Lo proverò e vedrò se il messaggio di avviso è stato cancellato ... – user2296188