Por que literais de coleção?
Dos vários artigos on-line sobre Java 7, eu soube que o Java 7 terá literais de coleção1 como o seguinte:
List<String> fruits = [ "Apple", "Mango", "Guava" ];
Set<String> flowers = { "Rose", "Daisy", "Chrysanthemum" };
Map<Integer, String> hindiNums = { 1 : "Ek", 2 : "Do", 3 : "Teen" };
Minhas perguntas são:
Não seria possível fornecer um método estáticoof
em todas as classes de coleção que podem ser usadas da seguinte maneira:List<String> fruits = ArrayList.of("Apple", "Mango", "Guava");
OMI parece tão bom quanto a versão literal e também é razoavelmente conciso. Por que eles tiveram que inventar uma nova sintaxe (EDITAR: Por 'novo' quero dizer 'novo em Java'.)?
Quando eu digoList<String> fruits = [ "Apple", "Mango", "Guava" ];
o queList
eu realmente pegaria? SeriaArrayList
ouLinkedList
ou alguma outra coisa?1 Conforme observado nos comentários, literais de coleção nãonão faça o corte para o Java 7, nem mesmo o Java 8. (Aqui está umo email de Brian Goetz, desenvolvedor Oracle, resumindo a justificativa para não incluir esse recurso; e aqui está oproposta próprio).