そのメソッド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;
}
しかし、すぐに使える解決策、またはこれを行うための劇的に簡単な方法があるかもしれません。