我正在尝试做一个把LinkedHashSet转换成EnumSet的bean。这是必需的,因为在这种情况下,Neo4j需要一个转换类。到目前为止,我已经实现了该课程:
public class LinkedHashSetToEnumSet implements Converter<LinkedHashSet<Access>, EnumSet<Access>> {
@Override
public EnumSet<Access> convert(LinkedHashSet<Access> h) {
EnumSet<Access> e = new EnumSet<Access>(); // error here
// Somehow do a for loop to add all of e to h?
return e;
}
} 在有注释行// error here的地方我得到了一个错误,错误是:
Cannot instantiate the type EnumSet<Resource.Access>
在创建EnumSet时,我缺少了一些简单的东西吗?
编辑:
是否可以将HashSet转换为EnumSet?
发布于 2013-09-18 19:09:25
错误很明显:EnumSet没有构造函数,创建构造函数的唯一方法是使用类中的静态方法,这些方法接收实际的枚举值。如果需要使用EnumSet中的所有元素创建LinkedHashSet,请尝试如下:
public EnumSet<Access> convert(LinkedHashSet<Access> h) {
return EnumSet.copyOf(h)
}我认为没有必要为此创建一个类和方法,只需在必要时调用copyOf(),并将枚举值的任何Collection作为参数传递。
https://stackoverflow.com/questions/18880342
复制相似问题