Почему дженерики полностью отключены, когда вы игнорируете тип параметра?
В качестве продолженияэтот вопроссначала фон
Дан класс с этим объявлением:
<code>public class SomeClass<T> </code>
И подкласс, который не использует универсальный параметр:
<code>public class SomeSubClass extends SomeClass </code>
Метод в SomeClass объявлен следующим образом:
<code>protected Map<String, Object> getMap(Object param) { } </code>
Если подкласс вызывает метод следующим образом:
<code>Map<String, Object> val = getMap(param); </code>
Компилятор по существу жалуется на то, что getMap возвращает простую карту и существует непроверенное назначение обобщенной карте. Почему это так? Это документированные ожидания с Generics, и есть ли причина для этого?