什么是最好的方法来使用存储在Enum字符串字面量的值? 例如:
public enum Modes {
some-really-long-string,
mode1,
mode2,
mode3
}
然后我就可以用《风尚》了。将其字符串表示形式返回为Mode1。而不必一直调用Mode.mode1.toString()。
什么是最好的方法来使用存储在Enum字符串字面量的值? 例如:
public enum Modes {
some-really-long-string,
mode1,
mode2,
mode3
}
然后我就可以用《风尚》了。将其字符串表示形式返回为Mode1。而不必一直调用Mode.mode1.toString()。
当前回答
经过多次尝试,我终于想出了这个解决办法
public static enum Operation {
Addition, Subtraction, Multiplication, Division,;
public String getUserFriendlyString() {
if (this==Addition) {
return " + ";
} else if (this==Subtraction) {
return " - ";
} else if (this==Multiplication) {
return " * ";
} else if (this==Division) {
return " / ";
}
return "undefined";
}
}
其他回答
经过多次尝试,我终于想出了这个解决办法
public static enum Operation {
Addition, Subtraction, Multiplication, Division,;
public String getUserFriendlyString() {
if (this==Addition) {
return " + ";
} else if (this==Subtraction) {
return " - ";
} else if (this==Multiplication) {
return " * ";
} else if (this==Division) {
return " / ";
}
return "undefined";
}
}
mode1.name()或String.valueOf(mode1)。恐怕没有比这更好的了
你可以使用Mode.mode1.name(),但是你通常不需要这样做。
Mode mode =
System.out.println("The mode is "+mode);
public enum Modes {
MODE1("Mode1"),
MODE2("Mode2"),
MODE3("Mode3");
private String value;
public String getValue() {
return value;
}
private Modes(String value) {
this.value = value;
}
}
你可以像下面这样调用任何你想从枚举中获取字符串值的地方。
Modes.MODE1.getvalue();
这将返回“Mode1”作为字符串。
据我所知,唯一的办法就是
Mode.mode1.name();
然而,如果你真的需要这样做,你可以这样做:
public enum Modes {
mode1 ("Mode1"),
mode2 ("Mode2"),
mode3 ("Mode3");
private String name;
private Modes(String s) {
name = s;
}
}