gpt4 book ai didi

java - 当我覆盖 TreeMap 中的 "put(K key, V value)"时,如何更改 "value"?

转载 作者:行者123 更新时间:2023-12-01 22:32:34 24 4
gpt4 key购买 nike

我扩展了一个 TreeMap,覆盖了“put()”,并做了一些等同于:

public class MyMap<K, Integer> extends TreeMap<K, Integer> {
@Override
public Integer put(K key, Integer value) throws ClassCastException, NullPointerException {
java.lang.Integer newValue = java.lang.Integer.valueOf(123);
super.put(key, newValue); // <--- error message here
return newValue;
}
}

错误信息:
找不到适合 put(K, java.lang.Integer) 的方法...java.lang.Integer 无法转换为 Integer。

我知道这与泛型有关。更改重写的“put()”中的“值”似乎是一件合理的事情,但我想不通。

最佳答案

您的 Integer 类型参数隐藏 java.lang.Integer

解决方案可能只是删除类键的类型参数(因为您似乎决定无论如何都要将 java.lang.Integer 作为值类型)。

class MyMap<K> extends TreeMap<K, Integer> {
...
}

非常相似的问题:Unboxing issues

关于java - 当我覆盖 TreeMap 中的 "put(K key, V value)"时,如何更改 "value"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28906968/

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