如何在 Java 中定义一个常量类?

新手上路,请多包涵

假设您需要定义一个类,它所做的只是保存常量。

 public static final String SOME_CONST = "SOME_VALUE";

这样做的首选方法是什么?

  1. 界面
  2. 抽象类
  3. 最后一堂课

我应该使用哪一个,为什么?


澄清一些答案:

枚举- 我不会使用枚举,我不会枚举任何东西,只是收集一些彼此不相关的常量。

接口- 我不会将任何类设置为实现接口的类。只想使用接口调用常量,如下所示: ISomeInterface.SOME_CONST

原文由 Yuval Adam 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 932
2 个回答

使用最终类,并定义一个私有构造函数来隐藏公共构造函数。

为简单起见,您可以使用静态导入在另一个类中重用您的值

public final class MyValues {

  private MyValues() {
    // No need to instantiate the class, we can hide its constructor
  }

  public static final String VALUE1 = "foo";
  public static final String VALUE2 = "bar";
}

在另一个班级:

 import static MyValues.*
//...

if (VALUE1.equals(variable)) {
  //...
}

原文由 user54579 发布,翻译遵循 CC BY-SA 4.0 许可协议

您的澄清说明:“我不会使用枚举,我不会枚举任何东西,只是收集一些彼此不相关的常量。”

如果常量彼此根本不相关,为什么要将它们收集在一起?将每个常量放在与其最密切相关的类中。

原文由 Jon Skeet 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏