【发布时间】:2013-02-22 16:13:27
【问题描述】:
public enum AppConst{
WIDTH (1280),
HEIGHT (800);
private final int value;
AppConst(int value) {
this.value = value;
}
private int get() { return value; }
}
VS.
public class AppConst{
public static final int WIDTH = 1280;
public static final int HEIGHT = 800;
}
我读到enums 更适合用于存储常量值。是按照我展示的那样存储它们的好方法还是我误解了什么?
编辑。 我认为将所有这些值放在一个位置可能会更好,因为如果需要,我们可以轻松地修改它们。我错了吗?
EDIT2. AppConst 旨在成为一个我将存储所有值的地方,这些值不应该是“幻数”。比如windows坐标等。我计划可以有一些字段如DAYS_IN_WEEK = 7, MAX_smth = ..., ... , ... .
【问题讨论】:
-
对于真正的 value-constant 就像你的一样,这有点矫枉过正。对 enumerated 类型使用枚举,例如状态或其他类型。
-
Enums 提供了更多有用的方法... Enum javadoc - docs.oracle.com/javase/6/docs/api/java/lang/Enum.html
-
恕我直言,我更喜欢使用
enum方法。如果您要选择类解决方案,至少将其设为final(没有类可以继承它)并将构造函数设为private(无需创建类的实例)。