我需要具有点标记的枚举,例如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()
。