【发布时间】:2014-03-09 13:59:41
【问题描述】:
所以我有一堆枚举,它们都扩展了一个接口:
public interface MyInterface {}
然后我有几个扩展接口的枚举:
public enum A implements MyInterface {}
public enum B implements MyInterface {}
我想要一个只接受扩展此接口的枚举的函数。我做不到:
public void MyFunction(MyInterface input)
因为在函数内部,我使用 EnumSet.of(input) 创建了一个 EnumSet。我不能这样做
public <T extends Enum<T>> void myFunction(T input)
因为在函数内部,我需要创建一个需要传递给另一个函数的 Map。那么是否有任何类型安全的方法可以做到这一点而无需强制转换?
编辑:更正了接口定义。
【问题讨论】:
-
应该是
enum A implements MyInterface
标签: java generics enums type-safety enumset