Tworzenie instancji symboli wieloznacznych generycznych
Pewnego dnia recenzowałem cudzy kod i natknąłem się na linię, która budziła pewne obawy. Dla uproszczenia powiedzmy, że mam ogólną klasę A i abstrakcyjną klasę B. Czy dozwolona jest następująca instancja, a jeśli tak, to dlaczego?
Object obj = new A<? extends B>();
Ja osobiście nigdy nie widziałem takiego wystąpienia jak wyżej, chociaż deklaracja taka jak
A<? extends B> obj = null;
z pewnością by się trzymał. Zawsze używam symbolu wieloznacznego w rodzajach, aby zadeklarować parametry metody, więc mogę po prostu nie mieć takiego doświadczenia.