Dlaczego generics jest całkowicie wyłączony, gdy ignorujesz typ parametru?
Jako kontynuacjato pytanie, najpierw tło
Biorąc pod uwagę klasę z tą deklaracją:
<code>public class SomeClass<T> </code>
I podklasa, która nie używa parametru ogólnego:
<code>public class SomeSubClass extends SomeClass </code>
Metoda na SomeClass zadeklarowała następująco:
<code>protected Map<String, Object> getMap(Object param) { } </code>
Jeśli podklasa wywołuje taką metodę:
<code>Map<String, Object> val = getMap(param); </code>
Kompilator narzeka w istocie, że getMap zwraca zwykłą mapę i istnieje niezaznaczone przypisanie do uogólnionej mapy. Dlaczego tak się dzieje? Czy jest to udokumentowane oczekiwania wobec Generics i czy jest ku temu powód?