首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取EnumSet的Enum类

获取EnumSet的Enum类
EN

Stack Overflow用户
提问于 2016-12-22 12:23:49
回答 1查看 587关注 0票数 3

是否可以从类型为Enum的变量中获取EnumSet类。

考虑以下代码:

代码语言:javascript
复制
enum Foo
{
    FOO_0,
    FOO_1,
}

<E extends Enum<E>> void fooBar(EnumSet<E> enumSet, Class<E> type)
{
    EnumSet<E> none = EnumSet.noneOf(type);
    // ...
}

void bar()
{
    EnumSet<Foo> enumSet = EnumSet.of(Foo.FOO_1);
    fooBar(enumSet, Foo.class);
}

Foo.class编写fooBar()似乎是多余的。我想从class函数内部的enumSet中提取fooBar()。这可能吗?

我想要做的只是调用fooBar(enumSet);,并且仍然能够将none变量实例化为EnumSet.noneOf()

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-22 12:51:57

也适用于空EnumSet,并返回正确的enum类型,即使元素具有类主体:

代码语言:javascript
复制
public static <T extends Enum<T>> Class<T> getElementType(EnumSet<T> enumSet) {
    if (enumSet.isEmpty())
        enumSet = EnumSet.complementOf(enumSet);
    return enumSet.iterator().next().getDeclaringClass();
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41283123

复制
相关文章

相似问题

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