Я пытаюсь реализовать Guava Cache.Typecasting A <X,Y> to A <Object, Object>
Мой Cache Объект:
Cache<String,MyObject> cache = initCache();
И GuavaCache конструктор выглядит следующим образом:
GuavaCache(String name, com.google.common.cache.Cache<Object, Object> cache)
Делать это:
GuavaCache options = new GuavaCache("guava_cache",cache);
дает ошибку:
Cache<String,OptionMap> cannot be converted to Cache<Object,Object>
Я пробовал <Object,Object> cache
, но это не работает.
Cache представляет собой интерфейс:
public interface Cache<K, V>
GuavaCache: http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/cache/guava/GuavaCache.html
это то, что делает initCache:
return CacheBuilder.newBuilder()
.expireAfterAccess(200, TimeUnit.SECONDS)
.build(new CacheLoader<String, MyObject>() {
@Override
public MyObject load(String key) throws Exception {
return new MyObject(loadFromRedis());
}
});
Является ли GuavaCache определенным вами классом? Было бы полезно посмотреть, как он использует объект кэша, который он задает, особенно если он должен читать или записывать на него или и то, и другое. – dfogni
Из-за стирания типов типы 'Cache' и 'Cache
@TillRohrmann: Я не могу его преобразовать. Ошибка ввода Невозможно использовать кеш для кэша –