メソッド参照の構文を理解するのに苦労しています。ここで、2 つのパラメーターa
とb
があり、参照はa
onのメソッドへのものb
です。
たとえば、私は方法を理解しています
Arrays.sort(personArray, comparators::compareByName);
と同等です
Arrays.sort(personArray, (o1, o2) -> comparators.compareByName(o1, o2));
その場合、ラムダ パラメータはメソッド呼び出しパラメータと一致するため(o1, o2)
です。
ただし、このラムダの場合
stream.sorted((o1, o2) -> o1.compareToIgnoreCase(o2));
私のIDEは、次と同等であると教えてくれます:
stream.sorted(String::compareToIgnoreCase);
a.method(b)
そして、その構文をメソッド参照に置き換える規則を見つけていません。
たとえば、ラムダに 3 つ以上のパラメーターがある場合はどうなるでしょうか。それは合法ですか?最初のパラメータがメソッドの対象になり、残りがパラメータになりますか?