Want
ファクトリメソッドとして空のArrayListを新規作成する Lambda 式を渡したいとき、次のようなラムダを渡すと Sonarqube や IntelliJ 等に "Replace this lambda with a method reference."や"Lambda can be replaced with method reference." というように直接実装を書くんじゃなくてメソッド参照にしろと怒られる。
() -> new ArrayList()
Do
次を渡せばOK。
ArrayList::new
Don't
空のArrayListを用意したあとでそのインスタンスに要素を追加していく場合、次はアウト。
Collections.emptyList()
Why
Collections.emptyList() で生成したリストは、基本的に操作できません。
add メソッドなどを呼び出すと UnsupportedOperationException
が発生します。
次も参考にどうぞ。
https://www.baeldung.com/java-collections-emptylist-new-list