如何从 Java 枚举中获取价值

2022-09-02 00:15:19

我有一个枚举,看起来像这样:

public enum Constants{
  YES("y"), NO("N")
  private String value;

  Constants(String value){
    this.value = value;
  }
}

我有一个测试类,看起来像

public class TestConstants{
 public static void main(String[] args){
   System.out.println(Constants.YES.toString())
   System.out.println(Constants.NO.toString())
 }
}

输出为:

YES
NO

而不是

Y
N

我不确定这里出了什么问题?


答案 1

您需要覆盖枚举的方法:toString

public enum Constants{
    YES("y"), NO("N")

    // No changes

    @Override
    public String toString() {
        return value;
    }
}

答案 2

您还可以将 getter 添加到枚举中,只需调用它即可访问实例变量:

public enum Constants{
    YES("Y"), NO("N");
    private String value;

    public String getResponse() {
        return value;
    }

    Constants(String value){
        this.value = value;
    }
}

public class TestConstants{
    public static void main(String[] args){
        System.out.println(Constants.YES.getResponse());
        System.out.println(Constants.NO.getResponse());
    }
}