带有常量的Java final类

Gau*_*ier 3 java oop static final class

我必须定义一个类,它所做的就是保持常量.

public static final String CODE1 = "100";
public static final String CODE2 = "200";
Run Code Online (Sandbox Code Playgroud)

现在我想在其他类中使用这些值.将此类用作静态类或实例化它会更好吗?

谢谢.

注意:我知道枚举,但在这种情况下,我必须使用一个类.

Jon*_*eet 6

只是为了使用这些值,你当然不应该实例化这个类.仅仅因为你可以像访问实例成员一样访问静态成员并不意味着它是个好主意.

如果类真的只包含常量 - 并且如果你确定这是一个好主意,而不是出现在与它们直接相关的类中的那些常量 - 你应该使它成为一个final带有私有构造函数的类,这样就没有人可以毫无意义地实例化它:

public final class Codes {
    public static final String CODE1 = "100";
    public static final String CODE2 = "200";

    // Prevent instantiation
    private Codes() {
    }
}
Run Code Online (Sandbox Code Playgroud)

唐的回答用枚举的建议是一个很好的主意太-这意味着你可以使用Code你的API中无处不在,你不会需要确切的字符串表示,它防止意外使用非码值.