我有一个这样的enum:
enum{
attribute(instance of subclass, int);
private superclass
private int;
}
现在,当我在枚举中搜索一个属性时,当我找到它时,我这样做:
superclass variable=value.getSuperclass();
所以我有一个超类变量,它包含一个子类实例现在,我应该使用父类声明中没有的子类方法,所以我应该将父类强制转换为未知的子类。
我该怎么做?这可能吗?
您可以通过instanceof关键字检查类型,
if (myObj instanceof SomeClass) {
SomeClass someClass = (SomeClass) myObj;
someClass.someSomeClassMethod();
}
但是根据你想要达到的效果,你可能应该使用一些模式。一般来说,以不需要使用instanceof和一般类型检查逻辑的方式构建代码是明智的。