我有一些代码获取枚举值:

StringUtils.isEmpty(getEnumMember().value());


支持代码如下所示:

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;
   }

   ...
}


我想知道是否有一种方法可以像处理空对象一样使用getEnumMember处理空枚举。例如:

public CustomEnum getEnumMember() {
    if (enumMember ==null) {
        return new CustomEnum();
    }
    return enumMember;
}


但是我无法实例化“新的CustomEnum”。您将如何处理它,以使getEnumMember()不会返回null?我希望不要为“ ENUM_IS_NULL(“”)“创建一个特殊的枚举值。

最佳答案

创建枚举时,就是说该类型的任何变量都将具有定义的值列表之一-或为null。那是不可避免的。因此,您必须接受null或确定一个适当的值-无论是现有的枚举值之一还是添加的新值。这些是您唯一的选择。代码return new CustomEnum();毫无意义。您必须选择一个枚举值,并且必须指定哪个。

09-11 20:31