List.of() または Collections.emptyList()およびList.of(...) または Collections.unmodifiableList()で与えられたコメントと回答のコンテキストで、 次の2つの経験則を思いつきました(これはそれに応じ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));
あなたは(反対)同意しますか?