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?

questionAnswers(2)

yourAnswerToTheQuestion