Вам не нужно разыгрывать:
(List<T>) entityMap.get(clazz)
.
Когда вы говорите
entityMap.get(clazz)
у вас на самом деле есть List<Object>
, которого достаточно для ваших нужд.
То же самое для
entityList = new ArrayList<T>();
Вы должны просто использовать entityList = new ArrayList<Object>();
Ваш тип безопасности обеспечиваетсяобъявление метода
<T> void addEntity(Class<T> clazz, T entity) {
и использование Map с ключом класса.
Таким образом, код должен выглядеть следующим образом:
private <T> void addEntity(Class<T> clazz, T entity) {
List<Object> entityList = entityMap.get(clazz);
if(entityList == null) {
entityList = new ArrayList<Object>();
entityMap.put(clazz, entityList);
}
entityList.add(entity);
}