Java:使 Enum 绑定到不同的 String 值



所以我有这样的东西

public enum DataType {
    RECORD_TYPE("0"),
    ...
    private String code;
    private DataType(String code){
         this.code = code;
    }
    public String getCode() {
         return code;
    }
}

所以当我这样做时

System.out.println(DataType.RECORD_TYPE);

它打印出字符串RECORD_TYPE,但我想让它打印出0,我不想这样做

System.out.println(DataType.RECORD_TYPE.getCode());

因为我觉得用户很可能会忘记把getCode()放进去。我知道 Enum 没有toString方法,当 java 将枚举转换为字符串时,我有没有办法更改默认行为?

我知道枚举不必字符串方法

它实际上确实有一个像任何Object一样的toString方法,你可以覆盖它。

当然。 覆盖toString()函数。

public String toString() {
  return code;
}

将此 toString() 方法添加到枚举中

public String toString() {
    return getCode();
}

最新更新