Оба метода имеют одно и то же стирание, но ни один не переопределяет другой - даже после того, как следуют одному и тому же общему определению - PullRequest
0 голосов
/ 06 октября 2019

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

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...