【问题标题】:How to add a description for each entry of enum?如何为枚举的每个条目添加描述?
【发布时间】:2013-04-13 15:18:11
【问题描述】:

鉴于以下情况:

enum Moving {DownRight , UpRight ,DownLeft ,UpLeft ,Up , Down ,Left ,Right};

Moving m_moving;

如果我这样做:

m_moving = Moving.DownRight;

m_moving.toString();

然后我会得到:

DownRight

那么,如何为枚举中的每个条目添加描述?

例如,如果我要做m_moving.toString();,那么我想展示FOO BAR

谢谢

【问题讨论】:

  • 或查看official tutorial。枚举可以像任何其他类一样具有字段和构造函数。
  • 顺便说一下,我建议您按顺时针方向排列方向,例如 e/se/s/sw/w/nw/n/ne。这给了你一个很好的属性,如果你取一个枚举值,加上 4 并取它 % 8 然后你得到相反的方向。加上其他有用的相关属性。
  • 这也是一个很棒的帖子:stackoverflow.com/questions/9662170/…

标签: java enums


【解决方案1】:

看看这段代码,来自我们的应用程序

public enum RegimeTributario {
    SIMPLES_NACIONAL("SI"), 
    LUCRO_PRESUMIDO("LP"), 
    LUCRO_REAL("LR");

    private String sigla;

    private RegimeTributario(String sigla) {
        this.sigla = sigla;
    }

    public String getSigla() {
        return sigla;
    }
}

枚举也接受字段

【讨论】:

    【解决方案2】:

    this 发布之后,这是我的最终答案(也非常感谢@Luiz E.):

    enum DirectionsEnum {
    
        North("North"),
        NorthEast("North East"),
        East("East"),
        SouthEast("South East"),
        South("South"),
        SouthWest("South West"),
        West("West"),
        NorthWest("North West");
    
        private String value;
    
        DirectionsEnum(String value) {
            this.value = value;
        }
    
        public String getValue() {
            return value;
        }
    
        @Override
        public String toString() {
            return this.getValue();
        }
    
        public static DirectionsEnum getEnum(String value) {
            if(value == null)
                throw new IllegalArgumentException();
            for(DirectionsEnum v : values())
                if(value.equalsIgnoreCase(v.getValue())) return v;
            throw new IllegalArgumentException();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-12-30
      • 1970-01-01
      • 2018-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-01
      相关资源
      最近更新 更多