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

2022-08-31 09:51:07

假设你需要定义一个类,它所做的就是保持常量。

public static final String SOME_CONST = "SOME_VALUE";

执行此操作的首选方法是什么?

  1. 接口
  2. 抽象类
  3. 最终课程

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


对一些答案的澄清:

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

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


答案 1

使用最终类,并定义一个私有构造函数来隐藏公共构造函数。
为简单起见,您可以使用静态导入在另一个类中重用您的值。

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)) {
  //...
}

答案 2

你的澄清说:“我不打算使用枚举,我不是在枚举任何东西,只是收集一些彼此之间没有任何关系的常量。

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


推荐