Warum Sammelliterale?
us den verschiedenen Online-Artikeln zu Java 7 habe ich erfahren, dass Java 7 Sammlungsliterale enthalten wir1 wie folgt:
List<String> fruits = [ "Apple", "Mango", "Guava" ];
Set<String> flowers = { "Rose", "Daisy", "Chrysanthemum" };
Map<Integer, String> hindiNums = { 1 : "Ek", 2 : "Do", 3 : "Teen" };
Meine Fragen sind:
äre es nicht möglich gewesen, eine statische Methode anzugebeof
in allen Collection-Klassen, die wie folgt verwendet werden könnten:List<String> fruits = ArrayList.of("Apple", "Mango", "Guava");
IMO das sieht genauso gut aus wie die wörtliche Version und ist auch einigermaßen prägnant. Warum mussten sie dann eine neue Syntax erfinden BEARBEITEN Mit "neu" meine ich "neu in Java".)?
Wenn ich sageList<String> fruits = [ "Apple", "Mango", "Guava" ];
wasList
würde ich eigentlich bekommen? Wäre esArrayList
oderLinkedList
oder etwas anderes1 Wie in den Kommentaren vermerkt, haben Sammlungsliteralenich Mach den Schnitt für Java 7 und Java 8. (Hier ist einEmai von Brian Goetz, einem Oracle-Entwickler, der die Gründe für die Nichteinbeziehung dieser Funktion zusammenfasst; und hier ist dasVorschla selbst.)