在java中创建一个枚举/最终类

Hri*_*sto 5 java enums final global-variables static-variables

我正在试图找出创建一个类的最佳方法,该类的唯一目的是成为全局静态变量的容器.这是一个伪代码,只是一个简单的例子,我的意思是......

public class Symbols {
   public static final String ALPHA = "alpha";
   public static final String BETA = "beta";

   /* ...and so on for a bunch of these */
}
Run Code Online (Sandbox Code Playgroud)

我不需要构造函数或方法.我只需要通过调用以下方式就可以从任何地方访问这些"符号":Symbols.ALPHA;

需要 String的实际值,所以我不能使用枚举类型.实现这一目标的最佳方法是什么?

Jon*_*eet 10

好吧,除了你已经给出的代码之外,还不清楚你还需要什么 - 除了让最后一个类给它一个私有构造函数.

然而,为了避免意外地使用不适当的值,我怀疑你好起来的使之成为一个枚举,如下所示:

public enum Symbol {
   ALPHA("alpha"),
   BETA("beta");

   private final String value;

   private Symbol(String value) {
     this.value = value;
   }

   public String getValue() {
     return value;
   }
}
Run Code Online (Sandbox Code Playgroud)

那样:

  • 你不能意外地使用Symbol.ALPHA你真正想要的字符串
  • 你不能意外地使用你真正期待符号的字符串
  • 您仍然可以轻松获取与符号关联的字符串值
  • 如果需要,您可以打开不同的符号值