是否可以从类型为Enum的变量中获取EnumSet类。
考虑以下代码:
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()。
发布于 2016-12-22 12:51:57
也适用于空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();
}https://stackoverflow.com/questions/41283123
复制相似问题