Ich habe eine Nachricht über Objektcasting bekommen, während ich meinen Code kompiliert habe. Ich habe keine Ahnung, wie man es beheben mit meinem aktuellen Wissen .... Lassen Sie uns sagen, ich habe ein generisches Objekt MyGenericObj<T>
es erstreckt sich von einem nicht-Generic Object ist MyObj
Was ist der richtige Weg, um den Objekttyp für Generisches Objekt zu überprüfen?
Hier ist ein Beispielcode:
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
}
Könnten Sie mir bitte mitteilen, wie dies richtig funktioniert?
Jede Hilfe wird geschätzt.
Zuerst Danke für Ihre Hilfe. Also meinst du im 'theClass'-Objekt, du hast einen Platz um den Objekttyp zu speichern, dann vergleichst du das mit' Integer.class '? – user2296188
@ user2296188 Im Wesentlichen ja - Sie schreiben etwas wie folgt: 'if (i instanceof MyGenericObject && ((MyGenericObject) i) .getTypeArg() == Integer.class) {...}'. Werfen Sie einen Blick auf diese Demo auf ideone ([link] (http://ideone.com/j85Uj9)) für ein funktionierendes Beispiel. – dasblinkenlight
Ich habe es jetzt ~~ Vielen Dank !!! Ich werde es ausprobieren und sehen, ob die Warnmeldung gelöscht wird ... – user2296188