У меня появилось предупреждающее сообщение об Object Casting при компиляции моего кода. Я понятия не имею, как это исправить с моим текущим знанием .... Скажем, у меня есть Generic Object MyGenericObj<T>
он проходит от необщего объекта MyObj
Каков правильный способ проверки типа объекта для универсального объекта?
Вот пример кода:
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
}
Не могли бы вы сообщить мне, что это за правильный способ?
Любая помощь приветствуется.
Первое спасибо за вашу помощь. Итак, вы имеете в виду объект «theClass», у вас есть место для сохранения типа объекта, и вы сравниваете его с «Integer.class»? – user2296188
@ user2296188 По сути, да - вы пишете что-то вроде этого: 'if (i instanceof MyGenericObject && ((MyGenericObject) i) .getTypeArg() == Integer.class) {...}'. Взгляните на эту демонстрацию на ideone ([link] (http://ideone.com/j85Uj9)) для рабочего примера. – dasblinkenlight
Я получил его сейчас ~~ Большое спасибо! Я попробую и посмотрю, очищено ли предупреждающее сообщение ... – user2296188