我有一些代码获取枚举的值:
StringUtils.isEmpty(getEnumMember().value());
Run Code Online (Sandbox Code Playgroud)
支持代码如下所示:
public CustomEnum getEnumMember() {
return enumMember;
}
----
public enum CustomEnum {
TEXT1("text1"),
TEXT2("text2"),
TEXT3("text3");
private final String value;
CustomEnum(String v) {
value = v;
}
public String value() {
return value;
}
...
}
Run Code Online (Sandbox Code Playgroud)
我想知道getEnumMember是否有办法以与处理null对象相同的方式处理空枚举.例如:
public CustomEnum getEnumMember() {
if (enumMember ==null) {
return new CustomEnum();
}
return enumMember;
}
Run Code Online (Sandbox Code Playgroud)
但我不能实例化一个"新的CustomEnum".你将如何处理这个,以便getEnumMember()不会返回null?我不想为"ENUM_IS_NULL("")"创建一个特殊的枚举值.
当您创建枚举时,您会说该类型的任何变量都将具有已定义的值列表之一 - 或者为null.这是不可避免的.因此,您必须接受null,或者确定一个合适的值 - 无论它是您现有的枚举值还是您添加的新值.这些是您唯一的选择.代码return new CustomEnum();没有意义; 您必须选择其中一个枚举值,并且必须指定哪一个.