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

Nam*_*s j 4 java class constants

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

小智 6

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

public class Status {

 public static final String ACTIVE = "ACTIVE";
 public static final String INACTIVE = "INACTIVE";}
Run Code Online (Sandbox Code Playgroud)

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

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

public enum Status {
  ACTIVE, INACTIVE;
}
Run Code Online (Sandbox Code Playgroud)

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

public void process(String input, String status)
Run Code Online (Sandbox Code Playgroud)

使用枚举时

public void process(String input, Status status)
Run Code Online (Sandbox Code Playgroud)

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