Java のラムダ式の理解をテストして学習しましょう
雑談:
JDK8 が出てきてから長い時間が経ちましたが、最初に出たときに少しだけ知って、その後捨ててしまいましたが、今また手に取っています。今はJDK11ですが。
この記事は継続更新モードになります。
テキスト:
Java8 の新機能では、次のように記述できます:
public static void main(String[] args) { Supplier<Integer> supplier = ()->1; Consumer<String> consumer = (a)-> System.out.println(a); System.out.println(supplier.get()); consumer.accept("test"); }
出力:
1 test Process finished with exit code 0
とてもおしゃれです。このような簡潔なコード、できますか?つまり、Java7
まず写真を盗んでLambdaを説明します
つまり、Lambda式対応するインターフェイスの実装を作成してから、値を割り当てるときに変数への変換にはコンパイラーを使用しますか?次のようにコンパイルされたコードを確認します。
public static void main(String[] args) { Supplier<Integer> supplier = () -> { return 1; }; Consumer<String> consumer = (a) -> { System.out.println(a); }; System.out.println(supplier.get()); consumer.accept("test"); }
コンパイラーはこの機能を実行しないため、JVM が Lambda 関数を実装している可能性があります。これについては後ほど詳しく説明します。 Mark 1
ここに書くと、ラムダ式によってコード量が削減されることがわかります。Java 8 より前では、この機能を実現するには、匿名の内部クラスを使用するか、インターフェイスを実装するクラスを作成するしかありませんでした。以下の通り
Supplier<Integer> supplier = new Supplier<Integer>() { @Override public Integer get() { return 1; } };
実際には、Lambdaに付随するインターフェースの方が気になります
@FunctionalInterface public interface Supplier<T> { /** * Gets a result. * * @return a result */ T get(); }
これで、FunctionalInterfaceを使用して、どのインターフェースがJDK8の関数インターフェースであるかを確認できます
そのうちの 1 つを選択してください。最も人気のあるもののうち 2 つは、テストして学習するためにここにあります
ああ、記事を読んで非常に重要な段落を見つけたので、話を中断させてください (実際には、関数型インターフェイスは非常に壊れやすいです:開発者がインターフェイスに関数を追加すると、そのインターフェイスは機能インターフェイスではなくなり、コンパイル エラーが発生します。コード レベルでこの脆弱性を克服し、インターフェイスが機能インターフェイスであることを明示的に示すために、Java 8 は特別なインターフェイスを提供します。注釈)
私が選択したのは、ArrayList と Optional の 2 つのクラスで、どちらも非常によく使用されるクラスです。
関連記事:
関連動画:
以上がJava のラムダ式の理解をテストして学習しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











一部のアプリケーションが適切に機能しないようにする会社のセキュリティソフトウェアのトラブルシューティングとソリューション。多くの企業は、内部ネットワークセキュリティを確保するためにセキュリティソフトウェアを展開します。 ...

多くのアプリケーションシナリオでソートを実装するために名前を数値に変換するソリューションでは、ユーザーはグループ、特に1つでソートする必要がある場合があります...

システムドッキングでのフィールドマッピング処理は、システムドッキングを実行する際に難しい問題に遭遇することがよくあります。システムのインターフェイスフィールドを効果的にマッピングする方法A ...

intellijideaultimatiateバージョンを使用してスプリングを開始します...

データベース操作にMyBatis-Plusまたはその他のORMフレームワークを使用する場合、エンティティクラスの属性名に基づいてクエリ条件を構築する必要があることがよくあります。あなたが毎回手動で...

Javaオブジェクトと配列の変換:リスクの詳細な議論と鋳造タイプ変換の正しい方法多くのJava初心者は、オブジェクトのアレイへの変換に遭遇します...

eコマースプラットフォーム上のSKUおよびSPUテーブルの設計の詳細な説明この記事では、eコマースプラットフォームでのSKUとSPUのデータベース設計の問題、特にユーザー定義の販売を扱う方法について説明します。

Redisキャッシュソリューションは、製品ランキングリストの要件をどのように実現しますか?開発プロセス中に、多くの場合、ランキングの要件に対処する必要があります。
