次のような式を書くことがどのように有効なのか、私にはよくわかりません。
Comparator<String> stringComp = Comparator.nullsLast(String::compareTo);
なぜなら:
nullsLast
Comparator
を引数として受け入れます- 2 つの引数を受け入れる
Comparator
isの関数メソッドcompare(T, T)
compareTo
1 つの引数のみを受け入れます- 二重コロン演算子がなければ、次のように書きます。
Comparator<String> stringComp = Comparator.nullsLast((s1, s2) -> s1.compareTo(s2));
つまり、1 つの引数のみを受け入れるメソッドでダブルコロン演算子を使用すると、ラムダの 2 番目の引数をパラメーターとして使用して、ラムダの最初の引数でメソッドを呼び出す必要があると推測されるということですか? それは私にとって非常に驚くべきことです。