我正在尝试扩展ConcurrentHashMap(仅用于FUN)并注意到以下编译错误说明...
这两种方法具有相同的擦除方式,但是都不能覆盖另一种方法
public class SimpleCacheImpl2<K, V> extends ConcurrentHashMap<K,SoftReference<V>> {
public void put(K key, V data){ // Compilation error at this line
SoftReference<V> softData = new SoftReference<V>(data);
super.put(key, softData);
}
public V get(K key){ // Compilation error at this line
SoftReference<V> softData = super.get(key);
return softData == null ? null : softData.get() ;
}
}
我的意图是对数据使用SoftReference。对创建简单缓存有任何建议吗?
编辑1:
在收到Boris&Pshemo的建议后,我将继续执行以下实现来调整和介绍我的功能。仅显示基本功能,并将类似地扩展更多自定义功能。
public class SimpleCacheImpl2<K, V> extends ConcurrentHashMap<K,SoftReference<V>> {
@Override
public SoftReference<V> put(K key, SoftReference<V> data){
return super.put(key, data);
}
@Override
public SoftReference<V> get(Object key){
return super.get(key);
}
public V putItem(K key, V data){
SoftReference<V> softData = put(key,new SoftReference<>(data));
return softData.get();
}
public V getItem(K key){
SoftReference<V> softData = get(key);
return softData != null ? softData.get() : null;
}
}