我有一个这样的枚举:
enum{
attribute(instance of subclass, int);
private superclass
private int;
}
现在,当我在enum中搜索一个attrubute时,当我发现它时:
superclass variable=value.getSuperclass();
所以我有一个包含子类实例的超类变量 现在,我应该使用超类声明中不存在的子类方法,所以我应该将超类强制转换为未知的子类。
我该怎么办?有可能吗?
答案 0 :(得分:0)
您可以通过instanceof关键字检查类型,
if (myObj instanceof SomeClass) {
SomeClass someClass = (SomeClass) myObj;
someClass.someSomeClassMethod();
}
但是根据你想要实现的目标,你应该使用一些模式。通常,以不需要使用instanceof的方式构造代码是明智的,并且通常是类型检查逻辑。