我有两种定义常量的方法。第一个通过类将一堆静态最终DataType变量保存在一个类中,另一个通过使用Enum进行保存。

这是拳头类型:

public class TipTipProperties {
    public static final String MAX_WIDTH_AUTO = "auto";
    public static final String POSITION_RIGHT = "right";
}

这些变量的使用将通过静态调用进行,例如:TipTipProperties.MAX_WIDTH_AUTO
第二种类型是:
public enum TipTipProperties {

    MAX_WIDTH_AUTO(MaxWidth.AUTO),
    POSITION_RIGHT(Position.RIGHT);

    private MaxWidth maxWidth;
    private Position position;

    private TipTipProperties(MaxWidth maxWidth) {
        this.maxWidth = maxWidth;
    }

    private TipTipProperties(Position position) {
        this.position = position;
    }

    public MaxWidth getMaxWidth() {
        return maxWidth;
    }

    public Position getPosition() {
        return position;
    }

    public enum MaxWidth {
        AUTO("auto");

        private String width;

        private MaxWidth(String width) {
            this.width = width;
        }

        public String getWidth() {
            return width;
        }
    }

    public enum Position {
        RIGHT("right"),

        private String position;

        private Position(String position) {
            this.position = position;
        }

        public String getPosition() {
            return position;
        }
    }
}

用法示例:TipTipProperties.POSITION_RIGHT.getPosition().getPosition()

我的问题是:
  • OOP哪个更好,为什么?
  • 是否存在其他替代方法或更好的方法?

  • 提前致谢。

    最佳答案

    正如Joshua Bloch在Effective Java中所说的那样,枚举是最好的选择,您可以使用枚举获得更多控制,就像您想要打印所有常量一样。
    使用类常量,您不能具有类型安全性。 read this for further help

    09-16 06:46