如何定义常量值

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

这是拳头类型:

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,为什么?
  • 有没有其他方法或更好的方法存在?
  • 提前致谢。


    Enum是最好的,因为Joshua Bloch在Effective Java中说过,如果你想打印所有的常量,你可以使用Enum来进行更多的控制。 与类常量,你不能有类型safety.read这个进一步的帮助


    在你的项目中使用属性文件也是做这件事的好方法。 在这篇文章中解释了如何在Java中做到这一点。

    基本上可以在项目的根目录中创建名为tiptip.properties东西,然后存储所需的所有键值对。

    链接地址: http://www.djcxy.com/p/59387.html

    上一篇: How to define Constant values

    下一篇: pandas reading csv orientation