List<? super Number> myNumsContra = new ArrayList<Number>();
myNumsContra.add(2.0F);
myNumsContra.add(2);
myNumsContra.add(2L);
System.out.println(myNumsContra.get(0)); //should throw error
Nach der Kontra Regel erwartet für Generika die get (0) oben nennen sollte einen Compiler-Fehler werfen. Aber ich sehe das nicht. Gibt es etwas, das ich vermisst habe? Ich verwende Java-8Kontra in Java nicht funktioniert Generika als
die javadocs für die Methode sehen Sie https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList verwenden. html # get (int) –
Warum sollte 'get (0)' genau einen Fehler werfen? –
War das Lesen dieses Artikels (https://dzone.com/articles/covariance-and-contravariance), der besagt, ob die List-Klasse eine Grenze wie z. Super T, dann wäre ich nicht in der Lage, get (0) aufzurufen, da der Compiler einen Fehler auslösen würde. – jtkSource