如何在Java中将LinkedHashSet转换为EnumSet?

Ste*_*n D 3 java spring set javabeans neo4j

我正在尝试将一个bean转换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;
    }

} 
Run Code Online (Sandbox Code Playgroud)

我得到一个错误,我有错误的注释行// error here:

Cannot instantiate the type EnumSet<Resource.Access>

有没有一些简单的事情,我在这里缺少创建一个EnumSet

编辑:

有可能将a HashSet转换为EnumSet

Ósc*_*pez 10

错误很明显:EnumSet没有构造函数,创建一个的唯一方法是使用类中的静态方法,它们接收实际的枚举值.如果您需要创建EnumSet包含a中所有元素的内容LinkedHashSet,请尝试以下方法:

public EnumSet<Access> convert(LinkedHashSet<Access> h) {
    return EnumSet.copyOf(h)
}
Run Code Online (Sandbox Code Playgroud)

我认为没有必要为此设置类和方法,只需copyOf()在必要时调用并作为参数传递任何Collection枚举值.