首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Java中将LinkedHashSet转换为EnumSet?

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

Stack Overflow用户
提问于 2013-09-18 19:07:07
回答 1查看 2.8K关注 0票数 5

我正在尝试做一个把LinkedHashSet转换成EnumSet的bean。这是必需的,因为在这种情况下,Neo4j需要一个转换类。到目前为止,我已经实现了该课程:

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-18 19:09:25

错误很明显:EnumSet没有构造函数,创建构造函数的唯一方法是使用类中的静态方法,这些方法接收实际的枚举值。如果需要使用EnumSet中的所有元素创建LinkedHashSet,请尝试如下:

代码语言:javascript
复制
public EnumSet<Access> convert(LinkedHashSet<Access> h) {
    return EnumSet.copyOf(h)
}

我认为没有必要为此创建一个类和方法,只需在必要时调用copyOf(),并将枚举值的任何Collection作为参数传递。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18880342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档