gpt4 book ai didi

java - 如何在 Java 中的 Enum 中声明字段?

转载 作者:行者123 更新时间:2023-12-03 20:08:36 24 4
gpt4 key购买 nike

我想在 Enum 中声明静态(或非静态)变量。我需要这个,因为我想将枚举值与一些字符串相关联。但我不想硬编码这个字符串。我想将我的应用程序范围的类与 String 常量一起使用。IE。我想在 enum 声明中这样写,但是有编译时错误:

public enum MyEnum {   
private static final AppConstants CONSTANTS = AppConstants.getInstance();

ONE(CONSTANTS.one()),
TWO(CONSTANTS.two());
}

我怎样才能枚举一个字段?

最佳答案

这是限制之一,必须首先指定枚举值,但您始终可以在每个实例化中引用相同的单例...

enum MyEnum {

ONE(Test.getInstance().one()),
TWO(Test.getInstance().two());

public final String val;

MyEnum(String val) { this.val = val; }
}

输出“hello”的例子:

public class Test {
public static void main(String[] args) {
System.out.println(MyEnum.ONE.val);
}

public String one() {
return "hello";
}
public String two() {
return "world" ;
}

static Test instance;
public synchronized static Test getInstance() {
if (instance == null)
instance = new Test();
return instance;
}
}

关于java - 如何在 Java 中的 Enum 中声明字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10028234/

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