String::compareToJavaは、 を呼び出すときに使用するメソッド参照をどのように認識しますCollections.sort(someListOfStrings, String::compareTo);か? は静的ではなく、比較の「左側」compareToを知る必要があります。value
2706 次
2 に答える
15
Comparatorインターフェイスにメソッド参照を使用するとします。
Comparator<String> cmp = String::compareTo;
cmp.compare(left, right)(「単一の抽象メソッド」またはインターフェイスの「SAM」 )を呼び出すとComparator、魔法が発生します。
int result = cmp.compare(left, right);
| |
/------------------------/ |
| /---------------/
| |
left.compareTo(right);
基本的にSAMのパラメータはすべて参照先のメソッドのパラメータに変換されますがthis、左側にあるオブジェクトもパラメータとしてカウントされます。
于 2015-09-06T04:08:10.073 に答える