我在A类中定义了一个枚举
public class A{
public static final String CANDY = "yelow candy";
public static final String CAKE = "cookie";
public enum Yummy{
CANDY, CAKE;
}
}在另一个包裹里
public class C {
Yummy[] yummies = A.Yummy.values();
for (Yummy yum : yummies){
String yumString = yum.toString();
System.out.println("yum =" + yumString);
}}
结果,我得到了糖果和蛋糕,而不是“黄糖”和“饼干”。我需要换什么才能得到“黄糖”和“饼干”?
发布于 2014-07-16 07:44:15
您已经定义了一个枚举"A.Yummy“以及两个字符串"A.Candy”和"A.CAKE“。
它们根本就没有联系。
您将希望删除字符串并添加类似于https://stackoverflow.com/a/13291109/1041364的内容
public enum Yummy {
CANDY("yelow candy"),
CAKE("cookie");
private String description;
private Yummy(String description) {
this.description= description;
}
public String toString() {
return this.description;
}
}发布于 2014-07-16 07:44:13
尝试以下几点:
public enum Yummy{
CANDY ("yellow candy"), CAKE ("cookie");
private String name;
private Yummy(String name) {
this.name = name;
}
public String toString() {
return this.name;
}
}发布于 2014-07-16 07:45:32
枚举的附加值应保存在属性中。您必须提供构造函数来设置这些属性。
public enum Yummy {
CANDY("yelow candy"), CAKE("cookie");
private String value;
private Yummy(String value) {
this.value = value;
}
};然后,在代码中可以使用CANDY.value或重写toString()方法。
https://stackoverflow.com/questions/24774938
复制相似问题