関数インターフェース定義
抽象メソッドが 1 つだけ含まれています。
標準メソッドや静的メソッドを使用できます。
抽象メソッドは実装を指定していません。
MyValue インターフェース {
double getValue();
}
注意: Java では、インターフェースに実装されていないメソッドは自動的に抽象であると想定されるため、関数型インターフェースでは、abstract 修飾子は明示的に必要ありません。
関数インターフェイスへの Lambda の割り当て
MyValue myVal = () -> 98.6;
ラムダの戻り値の型とパラメーターは、抽象メソッドと互換性がある必要があります。
抽象メソッド呼び出し:
System.out.println("定数値: " myVal.getValue());
結果: 98.6.
パラメータ付きの関数インターフェース
MyParamValue インターフェース {
double getValue(double v);
}
逆数の計算を含むラムダ:
MyParamValue myPval = (n) -> 1.0 / n;
System.out.println("4 の逆数は " myPval.getValue(4.0));
型推論
コンテキストによって推測されるパラメータのタイプ:
(n) -> 1.0/n; // 型は double
明示的に宣言された型 (オプション):
(二重 n) -> 1.0 / n;
互換性ルール
(int x, int y) -> x y;
結論
関数型インターフェイスにより、ラムダの使用が可能になります。
ラムダ式は、抽象メソッドの簡潔な実装を提供します。
ターゲットの型コンテキストと型の互換性は、その使用にとって非常に重要です。
以上が機能インターフェースの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。