默认情况下将 Java 枚举打印为小写,而将枚举常量保持为大写

新手上路,请多包涵

我在 Java 中有一个我想要序列化的枚举,因此当我从代码中的任何地方调用它时,我得到名称的小写表示。

假设我有以下枚举:

 public enum Status {
    DRAFT, PENDING, COMPLETE;
}
println ("Status=" + Status.DRAFT);

我想得到以下信息:

 Status=draft

[注意]:我想使用大写的枚举常量,并在请求值时获取小写表示。

原文由 spacebiker 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.7k
2 个回答

我自己回答这个问题,因为我发现解决方案很有趣,但在网站上找不到回复。以防万一其他人寻找解决此问题的方法。

解决方案很简单,只需重写 Enum toString 方法,如下所示:

 public enum Status {
    DRAFT, PENDING, COMPLETE;

    @Override
    public String toString() {
        return name().toLowerCase();
    }
}
println ("Status=" + Status.DRAFT);

这将以小写形式输出名称。

原文由 spacebiker 发布,翻译遵循 CC BY-SA 3.0 许可协议

另一种解决方案可能是:

 public enum Status {
  DRAFT, PENDING, COMPLETE;

  public String nameLowerCase(){
        return name().toLowerCase();
    }
}

原文由 Lorenzo Sciuto 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题