所以我有一堆枚举,它们都扩展了一个接口:
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。那么有没有任何类型安全的方法来做到这一点而无需强制转换?
编辑:更正了接口定义。