Mam pytanie dotyczące leków generycznych:Szczegóły o „super” zamiennika w rodzajowych java
Map<? super String, ? super String> mappa1 = new HashMap<Object,Object>();
z super jest to możliwe do instancji HashMap<Object,Object>
dla <? super String>
. Można jednak dodawać tylko obiekty, które rozszerzają ciąg (w tym przypadku tylko sam ciąg). Dlaczego nie zabraniają przez błąd kompilacji, tak jak dzieje się to w przypadku wieloznacznika extends
. Mam na myśli, że po utworzeniu Map <Object, Object>
możliwe jest tylko dodanie ciągów. Dlaczego nie zmusić do stworzenia Map<String, String>
? (jak to się dzieje w przypadku wieloznacznika extends
)
Znów znam różnicę między super
a extends
dotyczącą leków generycznych. Chciałbym tylko poznać szczegóły, o których wyżej wspomniałem.
Z góry dziękuję.
Jednak wtedy można dodać tylko obiekty, które rozciąga String (w tym przypadku tylko sam łańcuch) Możesz dodać CharSequences i obiektu, a nie objets która rozciąga String. – Nimajen
@Nimajen jest wspomniany w pytaniu. – Rollerball
Przepraszam, zły klucz. Mój komentarz był niekompletny. – Nimajen