移动 switch 语句以使用枚举
Move switch statement to use Enum
这里是新手。我想将 switch 语句转换为使用枚举。我创建了枚举,在 switch 语句中使用了它,但后来我不知道如何将 c
传递给 return 适当的值。
转换方法:
public String convert(String c) {
switch(c) {
case "red":
return "purple";
case "yellow":
return "orange";
default:
return c;
}
}
我试过但没有用的枚举:
public enum colorChange {
RED("purple"),
YELLOW("orange");
private final String color;
private colorChange(String color) {
this.color = color;
}
public String getcolor() {
return color;
最终,我想要做的是这样的:
public String convert(String c) {
switch(c) {
case RED:
return RED.getcolor();
case YELLOW:
return YELLOW.getcolor();
default:
return c;
}
}
非常感谢您的帮助。
像这样的事情是最简洁的方法 - 你甚至不需要 switch
。
public enum ColorChange {
RED("purple"),
YELLOW("orange");
private final String color;
ColorChange(String color) {
this.color = color;
}
public static String change(String color) {
return valueOf(color.toUpperCase()).color;
}
}
public void test(String[] args) {
System.out.println("red -> "+ColorChange.change("red"));
}
您需要通过传入一个字符串
向您的枚举添加一个return枚举的查找方法
public static colorChange lookup(String color) {
for (colorChange c : colorChange.values())
if(c.getcolor().equals(color))
return c;
return null;
}
那么你的转换方法应该接受一个枚举而不是一个字符串:
public String convert(colorChange c) {
switch(c) {
case RED:
return RED.getcolor();
case YELLOW:
return YELLOW.getcolor();
default:
return c;
}
}
并且当您调用转换方法时,您可以将字符串传递给查找方法
convert(colorChange.lookup("red"))
这里是新手。我想将 switch 语句转换为使用枚举。我创建了枚举,在 switch 语句中使用了它,但后来我不知道如何将 c
传递给 return 适当的值。
转换方法:
public String convert(String c) {
switch(c) {
case "red":
return "purple";
case "yellow":
return "orange";
default:
return c;
}
}
我试过但没有用的枚举:
public enum colorChange {
RED("purple"),
YELLOW("orange");
private final String color;
private colorChange(String color) {
this.color = color;
}
public String getcolor() {
return color;
最终,我想要做的是这样的:
public String convert(String c) {
switch(c) {
case RED:
return RED.getcolor();
case YELLOW:
return YELLOW.getcolor();
default:
return c;
}
}
非常感谢您的帮助。
像这样的事情是最简洁的方法 - 你甚至不需要 switch
。
public enum ColorChange {
RED("purple"),
YELLOW("orange");
private final String color;
ColorChange(String color) {
this.color = color;
}
public static String change(String color) {
return valueOf(color.toUpperCase()).color;
}
}
public void test(String[] args) {
System.out.println("red -> "+ColorChange.change("red"));
}
您需要通过传入一个字符串
向您的枚举添加一个return枚举的查找方法public static colorChange lookup(String color) {
for (colorChange c : colorChange.values())
if(c.getcolor().equals(color))
return c;
return null;
}
那么你的转换方法应该接受一个枚举而不是一个字符串:
public String convert(colorChange c) {
switch(c) {
case RED:
return RED.getcolor();
case YELLOW:
return YELLOW.getcolor();
default:
return c;
}
}
并且当您调用转换方法时,您可以将字符串传递给查找方法
convert(colorChange.lookup("red"))