Java Lambada表現の方法引用とコンストラクタ引用例分析
本論文の実例は、Java Lambada表現の方法引用とビルダー参照を述べている。皆さんに参考にしてあげます。具体的には以下の通りです。
一点の目
Lambda表現のコードブロックが一つのコードしかない場合、Lamda表現がより簡潔になるように、コードブロックで方法引用とコンストラクタ参照を使用することもできる。
種類
例
説明
対応するLamda表現
引用の方法
クラス名:クラス方法
関数式インターフェースで実装された方法の全パラメータをパラメータとしてこの方法に伝えます。
(a,b,…)->>クラス名.方法(a,b,…)
特定のオブジェクトを引用する方法の例
特定のオブジェクト:インスタンスメソッド
関数式インターフェースで実装された方法の全パラメータをパラメータとしてこの方法に伝えます。
(a,b,…)->特定のオブジェクト.インスタンス方法(a,b,…)
ある種類のオブジェクトの例を引用する方法
クラス名:実例の方法
関数インターフェースにおいて実装された方法の最初のパラメータは,スケジューラとして作用し,後のパラメータは全てこの方法にパラメータとして伝えられた。
(a,b,…)->a.例示的方法(b,…)
引用コンストラクタ
クラス名:new
関数式インターフェースで実装された方法の全パラメータはパラメータとしてこのコンストラクタに伝達される。
(a,b,…)->new類名(a,b,…)
二実戦
1コード
99
2
va I Lo
javax.swing.JFrame[frame 0,0,0 x 0,0 x 0,invalid、hidden、layout=java.awt.BorderLayout、title=私の窓、resizable、normal、default Close Operation=HIDEONするCLOSE、rootPane=javax.swing.JRootPane[、0,0 x 0,invalid、layout=javax.swing.JRootPane=Root Layout、alignmentX=0.0、alignments=0.0、border=、flaags=167776 mzemine=Entingzement=
もっと多くのjava関連の内容に興味がある読者は当駅のテーマを調べてもいいです。「Javaは対象プログラムに向かって入門と階段教程を設計します。」、「Javaデータ構造とアルゴリズム教程」、「Java操作DOMノード技術のまとめ」、「Javaファイルとディレクトリの操作テクニックのまとめ」、「Javaキャッシュ操作テクニックのまとめ」
本論文で述べたように、皆さんのjavaプログラムの設計に役に立ちます。
一点の目
Lambda表現のコードブロックが一つのコードしかない場合、Lamda表現がより簡潔になるように、コードブロックで方法引用とコンストラクタ参照を使用することもできる。
種類
例
説明
対応するLamda表現
引用の方法
クラス名:クラス方法
関数式インターフェースで実装された方法の全パラメータをパラメータとしてこの方法に伝えます。
(a,b,…)->>クラス名.方法(a,b,…)
特定のオブジェクトを引用する方法の例
特定のオブジェクト:インスタンスメソッド
関数式インターフェースで実装された方法の全パラメータをパラメータとしてこの方法に伝えます。
(a,b,…)->特定のオブジェクト.インスタンス方法(a,b,…)
ある種類のオブジェクトの例を引用する方法
クラス名:実例の方法
関数インターフェースにおいて実装された方法の最初のパラメータは,スケジューラとして作用し,後のパラメータは全てこの方法にパラメータとして伝えられた。
(a,b,…)->a.例示的方法(b,…)
引用コンストラクタ
クラス名:new
関数式インターフェースで実装された方法の全パラメータはパラメータとしてこのコンストラクタに伝達される。
(a,b,…)->new類名(a,b,…)
二実戦
1コード
import javax.swing.*;
@FunctionalInterface
interface Converter{
Integer convert(String from);
}
@FunctionalInterface
interface MyTest
{
String test(String a , int b , int c);
}
@FunctionalInterface
interface YourTest
{
JFrame win(String title);
}
public class MethodRefer
{
public static void main(String[] args)
{
// Lambda Converter
// Converter converter1 = from -> Integer.valueOf(from);
// Lambda : 。
// 。
Converter converter1 = Integer::valueOf;
Integer val = converter1.convert("99");
System.out.println(val); // 99
// Lambda Converter
// Converter converter2 = from -> "fkit.org".indexOf(from);
// Lambda : 。
// 。
Converter converter2 = "fkit.org"::indexOf;
Integer value = converter2.convert("it");
System.out.println(value); // 2
// Lambda MyTest
// MyTest mt = (a , b , c) -> a.substring(b , c);
// Lambda : 。
// ,
// 。
MyTest mt = String::substring;
String str = mt.test("Java I Love you" , 2 , 9);
System.out.println(str); // :va I Lo
// Lambda YourTest
// YourTest yt = (String a) -> new JFrame(a);
// Lambda 。
// 。
YourTest yt = JFrame::new;
JFrame jf = yt.win(" ");
System.out.println(jf);
}
}
2運転99
2
va I Lo
javax.swing.JFrame[frame 0,0,0 x 0,0 x 0,invalid、hidden、layout=java.awt.BorderLayout、title=私の窓、resizable、normal、default Close Operation=HIDEONするCLOSE、rootPane=javax.swing.JRootPane[、0,0 x 0,invalid、layout=javax.swing.JRootPane=Root Layout、alignmentX=0.0、alignments=0.0、border=、flaags=167776 mzemine=Entingzement=
もっと多くのjava関連の内容に興味がある読者は当駅のテーマを調べてもいいです。「Javaは対象プログラムに向かって入門と階段教程を設計します。」、「Javaデータ構造とアルゴリズム教程」、「Java操作DOMノード技術のまとめ」、「Javaファイルとディレクトリの操作テクニックのまとめ」、「Javaキャッシュ操作テクニックのまとめ」
本論文で述べたように、皆さんのjavaプログラムの設計に役に立ちます。