如何将空字符串设置为Java枚举值?

时间:2015-10-30 13:46:20

标签: java enums

使用空的java字符串作为java enum值处理时遇到问题。它在读取“”数据时抛出IllegalArgumentException。

updateType = records.get(11);
UpdateMethodType updateMethod = null;
String empty = "";
if (updateType != null || !updateType.isEmpty()) {
    System.out.println("Update type ----->" + updateType);
    updateMethod = KalturaUpdateMethodType.valueOf(updateType);
} else {
    updateMethod = KalturaUpdateMethodType.valueOf(empty);
}

请帮我解决这个问题。

2 个答案:

答案 0 :(得分:2)

不能有任何空的枚举值。您可以在KalturaUpdateMethodType中使用名为EMPTY的特殊枚举值。

答案 1 :(得分:1)

这是预期的行为。您不应该将空字符串传递给valueOf()方法。如果你传递null,你将得到一个NPE。 所以你最好为EMPTY字符串创建一个新的枚举。 喜欢:

enum KalturaUpdateMethodType {
    EMPTY("");
    String value;
    private KalturaUpdateMethodType(String value) {
      this.value = value;
   }
}