gpt4 book ai didi

java - 引用类型依赖 - 将 Map.Entry 声明为依赖于为 TreeMap 声明的泛型类型

转载 作者:行者123 更新时间:2023-11-29 05:43:11 24 4
gpt4 key购买 nike

让我们想象一下这个场景——我想在 java 中使用 TreeMap。它是集合框架的一部分,也是 SortedMap 接口(interface)的唯一实现。

public class MyDictionary extends TreeMap<String, String> {
// some code
}

为了浏览存储在我的 Dictionary 类中的条目,我需要一种 Map.Entry 类型。代码中的某处(可能是 MyDictionary 类的一个方法,或者更可能是包装类中的一个方法,其中包含一个保存我的数据的 MyDictionary 类的变量)会有类似这样的内容:

public void showEntries() {
for (Map.Entry<String, String> e : dictionary) {
System.out.println(e.getKey(), e.getValue()); // do something
}
}

现在的问题是:有没有办法将 Map.Entry 的通用类型绑定(bind)到为 TreeMap 声明的通用类型?

目标是只在一个地方定义通用类型。

如果我决定稍后更改 TreeMap 中保存的数据类型,我将不必搜索我使用这些类型的所有地方。

上面的例子是一个概念验证。请帮忙。

最佳答案

您可以使 MyDictionary 类成为通用类,其类型参数与 TreeMap 相匹配。

public class MyDictionary<K, V> extends TreeMap<K, V>

然后您就可以在整个类(class)中引用这些类型参数。具体来说:

for (Map.Entry<K, V> e : dictionary) {

或者如果您知道键和值将始终是同一类型:

public class MyDictionary<E> extends TreeMap<E, E>

for (Map.Entry<E, E> e : dictionary) {

关于java - 引用类型依赖 - 将 Map.Entry 声明为依赖于为 TreeMap 声明的泛型类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16822942/

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