如何在Java中将LinkedHashSet转换为EnumSet?
我正在尝试创建一个bean,用于将如何在Java中将LinkedHashSet转换为EnumSet?,java,spring,set,neo4j,javabeans,Java,Spring,Set,Neo4j,Javabeans,我正在尝试创建一个bean,用于将LinkedHashSet转换为EnumSet。这是必需的,因为Neo4j需要一个用于这种情况的转换类。到目前为止,我已经实施了该课程: public class LinkedHashSetToEnumSet implements Converter<LinkedHashSet<Access>, EnumSet<Access>> { @Override public EnumSet<Access>
LinkedHashSet
转换为EnumSet
。这是必需的,因为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;
}
}
公共类LinkedHashSetToEnumSet实现转换器{
@凌驾
公共枚举集转换(LinkedHashSet h){
EnumSet e=new EnumSet();//此处出错
//以某种方式做一个for循环,将所有e添加到h?
返回e;
}
}
我在注释行//error here
中得到一个错误,错误是:
无法实例化类型EnumSet
创建EnumSet
,这里是否缺少一些简单的东西
编辑:
是否可以将
哈希集
转换为枚举集
?错误很明显:枚举集
没有构造函数,创建构造函数的唯一方法是使用类中接收实际枚举值的静态方法。如果需要使用LinkedHashSet
中的所有元素创建EnumSet
,请尝试以下操作:
public EnumSet<Access> convert(LinkedHashSet<Access> h) {
return EnumSet.copyOf(h)
}
public EnumSet,并将枚举值的任何Collection
作为参数传递。这是因为我正在尝试将枚举集存储在Neo4j存储库中。我需要一个转换类。警告:EnumSet.copyOf
throwsIllegalArgumentException
如果其参数为空集合!这就是为什么它不需要类
参数。