如何为枚举的每个条目添加描述?

4

以下是给定的内容:

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

Moving m_moving;

如果我举个例子:

例如,如果我执行以下操作:

m_moving = Moving.DownRight;

and

m_moving.toString();

然后我会得到:
DownRight

那么,我怎样为枚举类型中的每个条目添加描述呢?

例如,如果我执行 m_moving.toString();,我想要显示 FOO BAR

谢谢。


1
或者查看官方教程。枚举类型可以像任何其他类一样具有字段和构造函数。 - Russell Zahniser
1
顺便提一下,我建议您按顺时针方向排序您的方向,例如东/东南/南/西南/西/西北/北/东北。这样可以使您获得一个好的特性,即如果您取一个枚举值,加上4并取模8,那么您就会得到相反的方向。此外还有其他有用的相关属性。 - Patashu
这也是一篇很棒的帖子:https://dev59.com/nWkw5IYBdhLWcg3wwdUS - JAN
2个回答

12

看看我们应用程序中的这段代码

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;
    }
}

枚举类型也可以接受字段


6

参照这篇帖子,以下是我的最终答案(同时也非常感谢@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();
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接