Java 枚举未提供预期结果
我在类a中定义了一个枚举Java 枚举未提供预期结果,java,enums,Java,Enums,我在类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.valu
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);
}
}
结果我得到了糖果和蛋糕,而不是“黄色糖果”和“饼干”。
要获得“Yellow candy”和“cookie”,我需要做哪些更改?请尝试以下操作:
public enum Yummy{
CANDY ("yellow candy"), CAKE ("cookie");
private String name;
private Yummy(String name) {
this.name = name;
}
public String toString() {
return this.name;
}
}
您已经定义了一个枚举“A.Yummy”和两个字符串“A.Candy”和“A.CAKE”
它们根本没有联系
您需要删除字符串并添加类似的内容
枚举的其他值应保留在属性中。您必须提供构造函数来设置这些属性
public enum Yummy {
CANDY("yelow candy"), CAKE("cookie");
private String value;
private Yummy(String value) {
this.value = value;
}
};
然后在代码中可以使用CANDY.value
或重写toString()
方法。尝试以下方法:
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
for (Yummy yum : Yummy.values()) {
System.out.printf("%s, %s\n", yum, yum.getValue());
}
}
}
enum Yummy {
CANDY("yelow candy"),
CAKE("cookie");
private String value;
private Yummy(String value) {
this.value = value;
}
public String getValue() {
return this.value;
}
}
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
for (Yummy yum : Yummy.values()) {
System.out.printf("%s, %s\n", yum, yum.getValue());
}
}
}
enum Yummy {
CANDY("yelow candy"),
CAKE("cookie");
private String value;
private Yummy(String value) {
this.value = value;
}
public String getValue() {
return this.value;
}
}