我需要具有点标记的枚举,例如WEATHER.SUNNY,因为它们使用通配符表示主题。我知道这是不可能的,因为枚举必须是有效的标识符。

here有人建议覆盖toString方法,但是我真的不明白这是什么意思。
但是,仍然有可能这样做吗?

最佳答案

您绝对可以执行@Stefan建议的操作,但这可能是将字段附加到枚举值的好用例:

public enum Topic {
    SUNNY("WEATHER.SUNNY"), CLOUDY("WEATHER.CLOUD"), ...

    String notation;

    Topic(String notation) {
        this.notation = notation;
    }

    public String getNotation() { return notation; }
}


然后您可以调用Topic.SUNNY.getNotation()

10-08 12:55