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

标签 java spring set neo4j javabeans

我正在尝试制作一个用于转换 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/

相关文章:

java - 带参数的 Spring mvc 重定向模式

java - maven 缺少 Artifact javax.transaction :jta:jar:1. 0.1B

java - 将 Integer 对象添加到 hashSet

c# - 如何设置MediaElement的位置?

java - Android Studio - 代码中的错误

java - 如何在不覆盖的情况下向标签添加文本?

java - Spring Boot 2.0 中的 EmbeddedServletContainerAutoConfiguration 和 ServerPropertiesAutoConfiguration

arrays - 给定一个集合 S,找出其和 <= k 的所有最大子集

java - netbean 的 Lookup 是什么?

java - 解析 Beanshell 代码