Я бы не использовал эту идиому для "упрощения" ArrayList
объявлений.Это выглядит круто, но без необходимости создает анонимный подкласс ArrayList
, и это выглядит слишком "волшебным" для моих вкусов ... Вам нужен код, который будет читаем и понятен следующему разработчику.
ВыВместо этого следует рассмотреть возможность использования библиотеки, такой как Google Guava .
. Вот пример использования Lists.newArrayList (E ... elements) служебного метода Guava:
import com.google.common.collect.Lists;
List<ArrayList<Integer>> numbers = Lists.newArrayList(
Lists.newArrayList(1, 2),
Lists.newArrayList(3, 4)
);
Или, что еще лучше, используя только интерфейс List
слева (вам следует избегать использования конкретных классов в объявлениях переменных):
import com.google.common.collect.Lists;
List<List<Integer>> numbers = Lists.<List<Integer>>newArrayList(
Lists.newArrayList(1, 2),
Lists.newArrayList(3, 4)
);
Если вы знаетеэти списки будут неизменными, еще лучше использовать ImmutableList :
import com.google.common.collect.ImmutableList;
List<List<Integer>> numbers = ImmutableList.<List<Integer>>of(
ImmutableList.of(1, 2),
ImmutableList.of(3, 4)
);