[Java]ram式と関数インタフェース
ランダ式法は1つの方法で表現される. これは匿名関数の略です. 関数型インタフェースを実現するためのラム多形式の式.(埋め込みインタフェースによるオブジェクト)
関数インタフェース
ランダ式のインタフェースを処理するために.抽象メソッドにはインタフェースが1つしかありません.JAva APIの
ラムダ式とインタフェースの方法は1対1で接続できる抽象的な方法しか定義されていないからである.(静的メソッドとdefaultメソッドには数の制限はありません.抽象的なメソッドが1つしかない場合は、デフォルトのメソッドがある場合でも関数インタフェースです.)
// 익명 함수
MyInterface myInterface = new MyInterface() {
@Override
public void eat() {
System.out.println("hello");
System.out.println("eating..");
}
};
上と下のコードは同じコードです. // 람다식
MyInterface myInterface = () -> {
System.out.println("hello");
System.out.println("eating..");
};
ラムダ式は、パラメータ、戻りタイプ、変数であってもよい.関数インタフェース
ランダ式のインタフェースを処理するために.抽象メソッドにはインタフェースが1つしかありません.JAva APIの
Comparator
、Runnable
などは関数型インタフェースである.ラムダ式とインタフェースの方法は1対1で接続できる抽象的な方法しか定義されていないからである.(静的メソッドとdefaultメソッドには数の制限はありません.抽象的なメソッドが1つしかない場合は、デフォルトのメソッドがある場合でも関数インタフェースです.)
@FunctionalInterface
public interface MyInterface {
void eat(); // abstract 생략 되어 있음. 딱 하나만 존재해야함
static void printName(String name) {
System.out.println(name);
}
default void printHello() {
System.out.println("hello");
}
}
Reference
この問題について([Java]ram式と関数インタフェース), 我々は、より多くの情報をここで見つけました https://velog.io/@max9106/Java-람다식과-함수형-인터페이스テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol