gpt4 book ai didi

java - 从枚举访问父类(super class)变量

转载 作者:行者123 更新时间:2023-12-01 07:04:36 24 4
gpt4 key购买 nike

有没有办法从枚举本身设置枚举父类/父类(super class)中保存的变量? (以下内容无法编译,但说明了我正在尝试实现的目标)....

class MyClass{

ObjectType type;
String someValue;


public void setType(ObjectType thisType){

type = thisType;

}

enum ObjectType {

ball{
@Override
public void setValue(){
someValue = "This is a ball"; //Some value isn't accessible from here
}
},
bat{
@Override
public void setValue(){
someValue = "This is a bat"; //Some value isn't accessible from here
}
},

net{
@Override
public void setValue(){
someValue = "This is a net"; //Some value isn't accessible from here
}
};

public abstract void setValue();
}

}

然后,像这样:

MyClass myObject = new MyClass();
myObject.setType(ObjectType.ball);

完成上述操作后,myObject 的“someValue”字符串现在应设置为“This is a ball”。

有什么办法可以做到这一点吗?

最佳答案

嵌套的enum类型是隐式静态的(参见Are java enum variables static?)。其中包括声明为内部类的 enum 类型,因此它们无法访问外部类的实例字段。

您无法使用枚举执行您想要执行的操作,您必须将其建模为普通类。

关于java - 从枚举访问父类(super class)变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29086798/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com