Dopo aver provato a comprendere i concetti a Spring MVC, ho trovato l'espressione Collection<? extends Book>
che non ho mai visto prima. Ho cercato di capirlo da solo, ma non vedo alcuna differenza tra l'utilizzo di Collection<? extends Book>
e Collection<Book>
. Immagino che sia consentito solo per le estensioni del libro, ma anche per il libro. Quindi graffia quello. Ho provato a utilizzare Google, ma da allora? è un jolly in google, rende quasi impossibile la ricerca. Ho cercato lo stackoverflow per la risposta, ma tutte le domande su questo (come List<? extends MyType> e <? extends > Java syntax) presuppongono già la conoscenza di Collection<? extends T>
. Ecco il codice che ha inizialmente incuriosito il mio interesse:Collezione <? extends T> vs Collezione <T>
import java.util.ArrayList;
import java.util.Collection;
public class Book {
public static void main(String[] args) {
BookCase bookCase1 = new BookCase();
BookCase bookCase2 = new BookCase(bookCase1);
}
}
class BookCase extends ArrayList<Book> {
public BookCase() {
}
//acts same as public BookCase(Collection<Book> c) {
public BookCase(Collection<? extends Book> c) {
super(c);
}
}
Cosa <? extends T>
fare? In cosa differisce da <T>
?
EDIT:
domanda ollowup: Vuol dire che BookCase extends ArrayList<Book>
BookCase
estende Book
?
Una 'Collezione' è una 'Collezione estende Libro> 'ma non una' Collezione '. –
immibis
Tempi come questi vorrei poter fare un segno di spunta verde con più risposte. In particolare le risposte di Makoto e Adam. Mentre tutte le risposte sono state utili, quelle in particolare mi hanno aiutato a capirlo. Quindi se stai cercando una risposta a questa domanda, ti suggerisco di leggere almeno entrambi, inclusi i commenti. Grazie a tutti!! – Evorlor