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

2022-09-02 00:03:55

我在Java中有一个枚举,我想序列化,这样当我从代码中的任何位置调用它时,我得到名称的小写表示。

假设我有以下枚举:

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

我想得到以下内容:

Status=draft

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


答案 1

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

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

public enum Status {
    DRAFT, PENDING, COMPLETE;

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

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


答案 2

另一种解决方案可能是:

public enum Status {
  DRAFT, PENDING, COMPLETE;

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