首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >enum没有提供预期的结果。

enum没有提供预期的结果。
EN

Stack Overflow用户
提问于 2014-07-16 07:40:55
回答 4查看 93关注 0票数 0

我在A类中定义了一个枚举

代码语言:javascript
复制
public class A{

     public static final String CANDY = "yelow candy";
     public static final String CAKE = "cookie";

    public enum Yummy{
         CANDY, CAKE; 
    }

}

在另一个包裹里

代码语言:javascript
复制
public class C {

   Yummy[] yummies = A.Yummy.values();

   for (Yummy yum : yummies){
          String yumString = yum.toString();
          System.out.println("yum =" + yumString);
   }

}

结果,我得到了糖果和蛋糕,而不是“黄糖”和“饼干”。我需要换什么才能得到“黄糖”和“饼干”?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-07-16 07:44:15

您已经定义了一个枚举"A.Yummy“以及两个字符串"A.Candy”和"A.CAKE“。

它们根本就没有联系。

您将希望删除字符串并添加类似于https://stackoverflow.com/a/13291109/1041364的内容

代码语言:javascript
复制
public enum Yummy {
     CANDY("yelow candy"),
     CAKE("cookie");

     private String description;

     private Yummy(String description) {
         this.description= description;
     } 

     public String toString() {
         return this.description;
     }
}
票数 6
EN

Stack Overflow用户

发布于 2014-07-16 07:44:13

尝试以下几点:

代码语言:javascript
复制
public enum Yummy{
     CANDY ("yellow candy"), CAKE ("cookie");

     private String name;

     private Yummy(String name) {
         this.name = name;
     } 

     public String toString() {
         return this.name;
     }
}
票数 2
EN

Stack Overflow用户

发布于 2014-07-16 07:45:32

枚举的附加值应保存在属性中。您必须提供构造函数来设置这些属性。

代码语言:javascript
复制
  public enum Yummy {
    CANDY("yelow candy"), CAKE("cookie");
    private String value;

    private Yummy(String value) {
      this.value = value;
    }
  };

然后,在代码中可以使用CANDY.value或重写toString()方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24774938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档