我在这个结构中的两个实体:爪哇 - 无法投射到子类
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
。我该如何解决这个问题?在java中使用向下转换的最佳方式是什么?
检查LSP原理https://en.wikipedia.org/wiki/Liskov_substitution_principle –
我假设你在Child1的构造函数中将type设置为1?如果是这样,这是一个相当重要的细节。 –
为什么你不想使用'instanceof Child1'作为你的条件? –