red*_*hoe 2 java generics overriding
我扩展了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;
}
}
Run Code Online (Sandbox Code Playgroud)
错误消息:
没有找到适合put的方法(K,java.lang.Integer)... java.lang.Integer无法转换为Integer.
我知道它与泛型有关.改变被覆盖的"put()"中的"值"似乎是一件合理的事情,但我无法弄清楚这一点.
您的Integer类型参数阴影java.lang.Integer.
解决方案可能只是删除类的键的类型参数(因为您似乎决定将其java.lang.Integer作为值类型).
class MyMap<K> extends TreeMap<K, Integer> {
...
}
Run Code Online (Sandbox Code Playgroud)
非常相似的问题:拆箱问题
| 归档时间: |
|
| 查看次数: |
500 次 |
| 最近记录: |