Java-メソッド研究
この投稿は学習用の記事です.
間違った内容があるかもしれません.
ランダが既存のメソッドまたはジェネレータを呼び出す場合、メソッドを使用して簡潔に表すことができます. ,すなわち,1つのメソッドのみを呼び出すラムダ式は,メソッド抽出を用いてより簡単な操作を行うことができる. の下のコードのような方法があると仮定します. ラム式に変更すると、次のコードになります. ブルーティーセレモニーから見る 入力 したがって、は、重複する情報を除去することができ、次のコードを完了する.
パラメータがない場合
ほとんど使わない
これがジャワです。
インフラストラクチャjava(白線)
間違った内容があるかもしれません.
📒 メソッドリファレンス
📌 1.静的メソッドを参照:クラス::メソッド
(x) -> ClassName.method(x) //람다식
ClassName::method //메서드 참조
Integer method(String s){
return Integer.parseInt(s);
}
Function<String, Integer> f = (String s)->Integer.parseInt(s); //람다식
Function<String, Integer>
.String
、出力Integer
を含む情報.Function<String, Integer> f = Integer::parseInt; //메소드 참조
メソッドリファレンスコードが理解できない場合は、逆にランムダ式に変えて理解しましょう.📌 2.ジェネレータを参照:タイプ::new
パラメータがない場合
Supplier<MyClass> s = () -> new MyClass(); //람다식
Supplier<MyClass> s = MyClass::new //메서드 참조
1つのパラメータがある場合(2つのパラメータがある場合はBiFunctionを使用します).Function<Integer, MyClass> s = i -> new MyClass(i); //람다식
Function<Integer, MyClass> s = MyClass::new; //람다식
配列とメソッドを参照Function<Integer, int []> s = i -> new int[i]; //람다식
Function<Integer, int []> s = int[]::new; //람다식
📌 3.特定のオブジェクトを参照するインスタンスメソッド:オブジェクトリファレンス::インスタンスメソッド
ほとんど使わない
(x) -> obj.method(x) //람다
obj::method //메서드 참조
📌 複合例
public class Main {
public static void main(String[] args) {
//스태틱 메소드 참조
Function<String, String> hi=Greeting::hi;
hi.apply("user");
//생성자 참조(인자 없는 생성자)
Supplier<Greeting> newGreeting=Greeting::new;
//생성자 참조(String 받는 생성자)
Function<String, Greeting> greeting=Greeting::new;
//인스턴스 메소드 참조
Greeting obj=new Greeting();
Function<String, String> hello=obj::hello;
}
}
class Greeting{
private String name;
public Greeting(){}
public Greeting(String name){
this.name=name;
}
public String hello(String name){
return "hello "+name;
}
public static String hi(String name){
return "hi "+name;
}
}
Reference
これがジャワです。
インフラストラクチャjava(白線)
Reference
この問題について(Java-メソッド研究), 我々は、より多くの情報をここで見つけました https://velog.io/@gmtmoney2357/자바-메서드-레퍼런스テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol