java - 存储和访问大量常量的最佳方式

标签 java class constants

例如,在制作游戏时,我有很多要存储的常量。我还希望很多类能够访问这些常量。存储和访问所有这些值的最佳方式是什么。目前,我只是将最终值存储在一个单独的类中,然后创建一个存储常量的类的实例。要访问这些值,我会执行“objectName.nameOfConstant”。所以我的问题是,它们是存储所有这些常量的正式方式还是更好的方式。

最佳答案

一个可能的解决方案是拥有一个具有静态属性的类,这样您就不需要创建实例。例如:

public class Status {

 public static final String ACTIVE = "ACTIVE";
 public static final String INACTIVE = "INACTIVE";}

可以直接调用:Status.ACTIVE或Status.INACTIVE

第二种可能的解决方案是使用枚举。

public enum Status {
  ACTIVE, INACTIVE;
}

使用静态字符串很简单,但是没有类型检查。例如,当您想将常量作为方法输入参数时:

public void process(String input, String status)

使用枚举时

public void process(String input, Status status)

枚举将确保您的输入来自枚举列表。虽然 static String 无法检查它,因此该方法的用户可以在“状态”中放置任何值,并且您需要确保如果该值是意外的值,该方法不会中断。

关于java - 存储和访问大量常量的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48106455/

相关文章:

c - 在 C 中创建类时出错

python - 创建不同类的类实例的更有效方法?

java - 为什么两个仅在注释上不同的 java 文件会产生不同的类文件?

c++ - 声明一个类的 const 实例

java - 为什么我的 JOptionPane.showMessageDialog 不工作?

java - 如何将 1 个 JPanel 和 1 个自定义 JPanel 放入 JFrame 中

java - 云配置收到请求执行错误。端点=默认端点{ serviceUrl='http ://localhost:8761/} from Eureka server

java - 如何移动放置在容器底部的最小化组件?

c++ - 为什么不能使用外部常量定义数组?

c++ - 我如何检查该函数是否真的获得了一个定义为 const 的变量?