Использование Java 9 коллекционных фабрик
В контексте комментариев и ответов наList.of () или Collections.emptyList () а такжеList.of (...) или Collections.unmodifiableList () Я придумал два следующих практических правила (которые также относятся кSet
а такжеMap
заводы соответственно).
Продолжайте использоватьCollections.emptyList()
для удобочитаемости и, например, когда инициализация ленивых членов поля, таких как:
class Bean {
private List<Bean> beans = Collection.emptyList();
public List<Bean> getBeans() {
if (beans == Collections.EMPTY_LIST) { beans = new ArrayList<>(); }
return beans;
}
}
Используйте новые фабрики в качестве конструкторов аргументов методаИспользуйте новые заводыList.of()
и варианты как быстрая и менее типичная версия при вызове исполняемого файла сList
Параметр (ы). Вот мои текущие шаблоны замещения:
Collections.emptyList() --> List.of()
Collections.singletonList(a) --> List.of(a)
Arrays.asList(a, ..., z) --> List.of(a, ..., z)
В вымышленном использованииCollections.indexOfSubList
, следующие строки
Collections.indexOfSubList(Arrays.asList(1, 2, 3), Collections.emptyList());
Collections.indexOfSubList(Arrays.asList(1, 2, 3), Collections.singletonList(1));
Collections.indexOfSubList(Arrays.asList(1, 2, 3), Arrays.asList(1));
Collections.indexOfSubList(Arrays.asList(1, 2, 3), Arrays.asList(2, 3));
Collections.indexOfSubList(Arrays.asList(1, 2, 3), Arrays.asList(1, 2, 3));
буду читать
Collections.indexOfSubList(List.of(1, 2, 3), List.of());
Collections.indexOfSubList(List.of(1, 2, 3), List.of(1));
Collections.indexOfSubList(List.of(1, 2, 3), List.of(1));
Collections.indexOfSubList(List.of(1, 2, 3), List.of(2, 3));
Collections.indexOfSubList(List.of(1, 2, 3), List.of(1, 2, 3));
Вы (не) согласны?