gpt4 book ai didi

java - 获取 EnumSet 的枚举类

转载 作者:行者123 更新时间:2023-11-30 08:30:22 25 4
gpt4 key购买 nike

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

考虑以下代码:

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);
}

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

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

最佳答案

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

public static <T extends Enum<T>> Class<T> getElementType(EnumSet<T> enumSet) {
if (enumSet.isEmpty())
enumSet = EnumSet.complementOf(enumSet);
return enumSet.iterator().next().getDeclaringClass();
}

关于java - 获取 EnumSet 的枚举类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41283123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com