gpt4 book ai didi

java - 如何在 Java 中编写一个通用函数以接收具有不同键类型的映射参数?

转载 作者:行者123 更新时间:2023-11-30 10:47:59 25 4
gpt4 key购买 nike

我有两个枚举:

enum Country { US, etc }
enum Language { EN, etc }

我希望能够编写一个函数,该函数接受以枚举作为键的映射:

checkMap(new HashMap<Language, Long>());
checkMap(new HashMap<Country, Long>());

我想出的唯一方法如下:

1. private void checkMap(Map<? extends Enum, Long> mapParam) {...}

2. private <T> void checkMap(Map<T, Long> mapParam) {...}

3. private void checkMap(Map mapParam) {...}

这些都不是我输入的参数的 super 特定项。(1) 通过使其成为 Enum 的某个子类来做到最好,但使大部分逻辑复杂化(我在这里大大简化了)。 (3) 我必须做大量的下游转换,我觉得这通常是不好的做法。

我觉得我在这里遗漏了一些相当明显的东西。

我也知道我可以用不同的参数编写两个单独的方法声明,但是有太多重复的逻辑,我想将该逻辑抽象为一个函数并避免重复代码。

最佳答案

我使用您的选项 2:使用泛型类型参数 T。在您的示例中,方法是 private,因此您可以完全控制哪些方法可以委托(delegate)给 checkMap,因此无需担心使用不适当的键类型的委托(delegate)。

关于java - 如何在 Java 中编写一个通用函数以接收具有不同键类型的映射参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35997680/

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