0

所以我有这样的东西

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 将 Enum 转换为 String 时更改默认行为?

4

3 回答 3

5

我知道 Enum 没有 toString 方法

它实际上确实有一个 toString 方法,就像任何Objects 一样,您可以覆盖它。

于 2012-06-01T15:19:55.077 回答
3

当然。覆盖toString()函数。

public String toString() {
  return code;
}
于 2012-06-01T15:20:04.757 回答
2

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

public String toString() {
    return getCode();
}
于 2012-06-01T15:20:21.390 回答