如何解决 IllegalArgumentException:Java 中没有枚举常量 ClientRequest.TwoNumbersEnum.1?
How to resolve IllegalArgumentException: No enum constant ClientRequest.TwoNumbersEnum.1 in Java?
我正在学习 Java 和枚举,我有这个枚举:
public static enum TwoNumbersEnum {
_1("1"),
_0("0");
之后我尝试为对象设置值“1”:
theClient.setTwoNumbers(ClientRequest
.TwoNumbersEnum.valueOf("1"));
当我尝试设置它时,我得到:
java.lang.IllegalArgumentException: No enum constant com.dgs.ClientRequest.TwoNumbersEnum.1
我该如何解决这个问题?我认为这个问题只针对数字。提前致谢!
Java Enum.valueOf
用于 return 来自字符串的枚举常量。您使用了 TwoNumbersEnum.valueOf("1")
并且没有具有常量名称 "1"
的枚举(不可能是数字。)
你必须这样称呼它 TwoNumbersEnum.valueOf("_1")
。
你可以在枚举定义中写一个访问方法来直接访问它的值。喜欢下面
public static enum TwoNumbersEnum {
_1("1"),
_0("0");
private final String value;
private TwoNumbersEnum(String val) {
this.value = val;
}
public String value() {
return this.value;
}
}
如果您需要该值本身,则可以将其命名为 TwoNumbersEnum.valueOf("_1").value()
。有关更多信息,请参阅文档。
我正在学习 Java 和枚举,我有这个枚举:
public static enum TwoNumbersEnum {
_1("1"),
_0("0");
之后我尝试为对象设置值“1”:
theClient.setTwoNumbers(ClientRequest
.TwoNumbersEnum.valueOf("1"));
当我尝试设置它时,我得到:
java.lang.IllegalArgumentException: No enum constant com.dgs.ClientRequest.TwoNumbersEnum.1
我该如何解决这个问题?我认为这个问题只针对数字。提前致谢!
Java Enum.valueOf
用于 return 来自字符串的枚举常量。您使用了 TwoNumbersEnum.valueOf("1")
并且没有具有常量名称 "1"
的枚举(不可能是数字。)
你必须这样称呼它 TwoNumbersEnum.valueOf("_1")
。
你可以在枚举定义中写一个访问方法来直接访问它的值。喜欢下面
public static enum TwoNumbersEnum {
_1("1"),
_0("0");
private final String value;
private TwoNumbersEnum(String val) {
this.value = val;
}
public String value() {
return this.value;
}
}
如果您需要该值本身,则可以将其命名为 TwoNumbersEnum.valueOf("_1").value()
。有关更多信息,请参阅文档。