Javaの8参照方法
入門
ラムダ式の学習の後、私たちはしばしば、匿名ラムダ式を作成するための方法を使用します。しかし、時には我々はただすでに存在しているメソッドを呼び出します。次のように:
Arrays.sort(stringsArray、(S1、S2) - > s1.compareToIgnoreCase(S2))。
Java8では、我々はによって直接参照することができ速記既に存在している方法のラムダ式。
Arrays.sort(stringsArray、文字列:: compareToIgnoreCase)。
入門
この機能は、参照方法(方法参照)と呼ばれます。
この方法は、方法を指すようにメソッドの名前によって参照されます。
方法基準は、冗長コードを減らすために、言語のよりコンパクトで簡単な構成にすることができます。
この方法は、コロンのペアを参照する ::
参照型
この方法は、標準的なフォームを参照されます类名::方法名
。(注意:唯一のメソッド名を記述する必要がある、括弧を記述する必要はありません)
メソッド参照の4種類が第三である必要があり、ほとんどの使用、があります。
タイプ | 例 |
静的メソッドを参照 | ContainingClass :: staticMethodName |
インスタンスメソッドへのオブジェクト参照 | containingObject :: instanceMethodName |
オブジェクトの種類への参照の方法として | ContainingType :: methodNameの |
リファレンスコンストラクタ | クラス名::新しいです |
ケース(ラムダを使用して比較)
パッケージjdk8.lambda。 輸入java.time.LocalDate。 輸入java.util.Arrays。 / ** * jdk8.lambda * * @description: * @author :changliu * @Date:2019年7月31日 * / パブリック クラス参照してください{ / ** *实体类-人 * / パブリック 静的 クラス人{ 公共者(文字列の名前、誕生日LOCALDATE){ この .nameの= 名前。 この .birthday = 誕生日。 } プライベート文字列名; プライベートLOCALDATEの誕生日。 パブリック 静的 INT compareByAge(人物A、人物B){ 戻りa.birthday.compareTo(b.birthday)を、 } } パブリック 静的 ボイドメイン(文字列[]引数){ 人[]パール = 新しい人[] { 新規人物( "003"、LocalDate.of(2016,9,1 ))、 新たな人物( "001"、LOCALDATE .of(2016,2,1 ))、 新たな人物( "002"、LocalDate.of(2016,3,1 ))、 新たな人物( "004"、LocalDate.of(2016,12,1 ))}。 // 静的メソッドとラムダ式のタイプを使用 -は、Arrays.sort(>パールは、(A、B); Person.compareByAge(A、B)) // 利用法の参照は、参照は静的クラスで は、Arrays.sort (パール、人:: compareByAge); System.out.printlnは(は、Arrays.asList(パー)); } }
赤色で強調表示された場合は、基準方法の使用は、より簡潔な見ることができています。