У меня есть два субъекта в этой структуре:Java - не может бросить в дочернем классе
class Parent{
public int type;
//Setters and getters
}
class Child1 extends Parent{
}
У меня есть экземпляр Parent
, и я хочу, чтобы бросить его на Child1
основе при условии, таким образом:
Parent parent = ...
if(parent.getType() == 1)
Child1 child = (Child1) parent;
Но это дает мне ClassCastException
. Как я могу решить эту проблему? Каков наилучший способ использования downcasting в java?
Проверить принцип LSP https://en.wikipedia.org/wiki/Liskov_substitution_principle –
Я предполагаю, что вы задаете тип 1 в конструкторе Child1? Это достаточно разумная деталь, если это так. –
Почему вы не хотите использовать 'instanceof Child1' в качестве вашего условия? –