Я пытаюсь реализовать EhCache.
Поскольку моя настройка класса CacheManger
использует обобщенные элементы, я хочу, чтобы экземпляр моего диспетчера кэширования также был обобщенным.
Изначально я пытался использовать массив, но это зашло в тупик, так как нет универсального sol для типов массивов.
Если кто-нибудь может помочь мне понять, как дженерики работают со списком, это было бы здорово.
В настоящее время я могу думать о том, чтобы поместить List.class
, а затем набрать приведение к конкретным типам. но я вполне могу ошибаться, предложите, если этот подход также может быть улучшен.
public class CacheManager<Dao extends DaoImpl,Pojo extends PozoImpl> {
Class<Dao> clazz = null;
Class<Pojo> _clazz_pojo = null;
// < I tried Pojo[] instead of List but its not posibble with generics >
Cache<String, List<Pojo>> _cache = null;
// get cacheManager singleton obj
public static CacheManager cacheManager = EhCacheInstance.ehInstance.getInstance();
public CacheManager(Class<Dao> clazz,Class<Pojo> _clazz_pojo) {
// get cache
// < How do we init List here? >
_cache = cacheManager.getCache(_clazz_pojo.getName(), String.class, ? );
// init
if(_cache == null){
_cache = cacheManager.createCache(_clazz_cargo.getName(),
CacheConfigurationBuilder.newCacheConfigurationBuilder(String.class, ? , ResourcePoolsBuilder.heap(10)));
}
// assigment
this.clazz = clazz;
this._clazz_cargo = _clazz_cargo;
}
}
Заранее спасибо.