[Java] - Method References


Method Reference


何ですか。


これは特殊な文法で、ランムダ式で実現される方法を参照することができます.
	Timer t = new Timer(1000, event -> System.out.println(event));
メソッドリファレンスにより、上記のラムダコードを以下の簡単なリファレンスで記述できます.
	Timer t = new Timer(1000, System.out::println);
この例で使用するmethod referenceのフォーマットはobject::intanceMethodです.

どのように作成しますか?


メソッドリファレンスには3つの作成方法があります.
  • object::instanceMethod
    指定したオブジェクトのメソッドを呼び出し、instanceメソッドにパラメータを渡します.
  • System.out::println // same as (x)-> System.out.println(x)
    this::equals //same as (x) -> this.equals(x)
  • Class::staticMethod
    すべてのパラメータは静的メソッドで伝達されます.
  • 	Math::pow // same as (x,y) -> Meth.pow(x,y)
  • Class::instanceMethod
    1番目のパラメータはmethodを伝達するobjectとなり,2番目のパラメータはこの方法に伝達される.
  • 	String::compareToIgnoreCase(x,y) // same as (x,y) -> x.CompareToIgnoreCase(y)

    使用する理由


    CSから作成