Почему коллекционные литералы?
Из различных онлайн-статей о Java 7 я узнал, что Java 7 будет иметь коллекционные литералы1 как следующее:
List<String> fruits = [ "Apple", "Mango", "Guava" ];
Set<String> flowers = { "Rose", "Daisy", "Chrysanthemum" };
Map<Integer, String> hindiNums = { 1 : "Ek", 2 : "Do", 3 : "Teen" };
Мои вопросы:
Не было бы возможно предоставить статический методof
во всех классах коллекции, которые можно использовать следующим образом:List<String> fruits = ArrayList.of("Apple", "Mango", "Guava");
ИМО это выглядит так же хорошо, как буквальная версия, а также достаточно кратким. Почему тогда они должны были изобрести новый синтаксис (РЕДАКТИРОВАТЬ: Под «новым» я подразумеваю «новый для Java».)?
Когда я сказалList<String> fruits = [ "Apple", "Mango", "Guava" ];
какиеList
я бы на самом деле получил? Будет ли этоArrayList
или жеLinkedList
или что-то другое?1 Как отмечено в комментариях, литералы коллекции сделалине сделать разрез для Java 7, а на самом деле и Java 8. (ВотЭл. адрес Брайан Гетц (Brian Goetz), разработчик Oracle, подытоживший причину отказа от этой функции; и вотпредложение сам.)