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

标签 java class-constants

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

public static final String SOME_CONST = "SOME_VALUE";

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

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

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


澄清一些答案:

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

接口(interface) - 我不会将任何类设置为实现接口(interface)的类。只想使用接口(interface)调用常量,像这样:ISomeInterface.SOME_CONST

最佳答案

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

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";
}

在另一个类(class):

import static MyValues.*
//...

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

关于java - 如何在 Java 中定义一个常量类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/479565/

相关文章:

java - 基于角色的身份验证不起作用

Java线程性能

php - 如何将另一个文件中的变量分配给类常量?

excel - 为 Excel VBA 创建常量库的理想方法是什么?

java - 我可以通过 JNI 从 Java 调用的 EPoll C 实现

java - 如何在 splinter 的测试环境中继续前进?

java - 即使存在,也不会调用重写的 Java 方法

php - 创建一个类的所有常量的数组?

c++ - 为什么类的常量数据成员需要在构造函数中初始化?

ruby - 有没有办法在 Ruby YAML 文件中指定 ruby​​ 类/模块常量作为值