java enum 泛型_java – 实例化泛型类型的EnumSets

我有两个实现通用接口的枚举.我试图声明接口,所以只有枚举才能实现它.

interface CommonEnumInterface> {

/** It doesn't matter what this does. */

E commonInterfaceMethod();

}

enum Enum1 implements CommonEnumInterface {

FOO,

BAR,

BAZ;

@Override

public Enum1 commonInterfaceMethod() {

return null;

}

}

enum Enum2 implements CommonEnumInterface {

BLAH,

YADDA,

RHUBARB;

@Override

public Enum2 commonInterfaceMethod() {

return Enum2.BLAH;

}

}

现在我想声明一个扩展CommonEnumInterface的泛型类型参数,这应该意味着泛型类型也是一个枚举:

class CreatingGenericEnumSet & CommonEnumInterface> {

CreatingGenericEnumSet() {

// Is it possible to instantiate an EnumSet of a generic type?

EnumSet enumSet = EnumSet.noneOf(E.class); // Illegal class literal

// According to a comment by @tackline, this is illegal, too.

Collection hackyVariable = Collections.emptyList();

EnumSet jankyWay = EnumSet.copyOf(hackyVariable);

}

}

我的问题在上面的评论中.是否有一种方法,最好是在一行中,声明一个泛型类型的EnumSet?

这是声明接口和类型参数的正确方法吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值