我正在尝试制作一个用于转换 LinkedHashSet
的 bean进入 EnumSet
.这是必需的,因为 Neo4j 在这种情况下需要一个转换类。到目前为止,我已经实现了该类(class):
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
?
最佳答案
错误很明显:EnumSet
没有构造函数,创建构造函数的唯一方法是使用类中接收实际枚举值的静态方法。如果您需要使用 LinkedHashSet
中的所有元素创建一个 EnumSet
,请尝试以下操作:
public EnumSet<Access> convert(LinkedHashSet<Access> h) {
return EnumSet.copyOf(h)
}
我认为没有必要为此创建类和方法,只需调用copyOf()
即可。必要时将枚举值的任何 Collection
作为参数传递。
关于java - 如何在 Java 中将 LinkedHashSet 转换为 EnumSet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18880342/