Java:如何编写接受实现给定接口的Enum常量的generics函数?

所以我有一堆枚举,它们都扩展了一个接口:

public interface MyInterface {} 

然后我有几个扩展界面的枚举:

 public enum A implements MyInterface {} public enum B implements MyInterface {} 

我想要一个只接受扩展此接口的枚举的函数。 我不能做:

 public void MyFunction(MyInterface input) 

因为,在函数内部,我使用EnumSet.of(输入)创建一个EnumSet。 我做了

 public <T extends Enum> void myFunction(T input) 

因为,在函数内部,我需要创建一个需要传递给另一个函数的Map。 那么有没有任何类型安全的方法来做这个没有铸造?

编辑:更正的接口定义。

您可以为类型参数指定多个边界:

 public  & MyInterface> void myFunction(T input) 

注意:您缺少该方法的返回类型。 我在这里已经void了。 相应地改变。 哦! 请遵循Java命名约定。 方法名称应以小写字母开头。