dato questo frammento di codicePerché l'aggiunta di una sottoclasse di tipo in una raccolta è illegale?
//Creates a list of List numbers
List<List<Number>> num = new ArrayList<List<Number>>();
//Creates a list of List doubles
List<List<Double>> doub = new ArrayList<List<Double>>();
//List of doubles
List<Double> d = new ArrayList<Double>();
d.add(2.5);
d.add(2.6);
doub.add(d);
num.add(d);//This code will not compile
Perché non sarà consentito che num.add (dop)? non è List<List<Number>>
un super tipo di List<List<Double>>
?
Intendevi num.add (d) invece di num.add (dubbio)? – Alex
I tipi generici devono essere esatti a meno che non sia consentito? estende i sottotipi o '? super 'super tipi. –
Ho modificato il codice. Intendeva 'num.add (d)', altrimenti la domanda non è interessante! – romaintaz