我想将一些序列化为EnumSet<FooType>
使用String
它的toString()
方法。
例如:EnumSet.of(FooType.COMMON, FooType.MEDIUM).toString()
会给[COMMON, MEDIUM]
。
问题是关于将这样的字符串反序列化回EnumSet<FooSet>
. 我正在寻找一些众所周知的库(可能像apache-commons
)或用于此类事物的标准 Util 类。
就像是:EnumSetUtil.valueOf(FooType.class, "[COMMON, MEDIUM]")
我已经以这种方式实现了这个东西:
public static <E extends Enum<E>> EnumSet<E> valueOf(Class<E> eClass, String str) {
String[] arr = str.substring(1, str.length() - 1).split(",");
EnumSet<E> set = EnumSet.noneOf(eClass);
for (String e : arr) set.add(E.valueOf(eClass, e.trim()));
return set;
}
但是,可能有一个现成的解决方案,或者一个非常简单的方法来做到这一点。