如何从 Java 枚举中获取值

新手上路,请多包涵

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

 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

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

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

阅读 612
2 个回答

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

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

    // No changes

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

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

您还可以向枚举添加一个 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());
    }
}

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

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