Я пытаюсь расширить 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;
}
}