gpt4 book ai didi

Java:如何编写接受实现给定接口(interface)的枚举常量的通用函数?

转载 作者:搜寻专家 更新时间:2023-11-01 01:12:56 25 4
gpt4 key购买 nike

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

public interface MyInterface {}

然后我有几个扩展接口(interface)的枚举:

public enum A implements MyInterface {}

public enum B implements MyInterface {}

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

public void MyFunction(MyInterface input)

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

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

因为,在函数内部,我需要创建一个需要传递给另一个函数的 Map。那么有没有任何类型安全的方法来执行此操作而不进行强制转换?

编辑:更正接口(interface)定义。

最佳答案

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

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

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

关于Java:如何编写接受实现给定接口(interface)的枚举常量的通用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21707681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com