Java の機能をシンプルに: クイックガイド

Patricia Arquette
リリース: 2024-10-30 08:51:27
オリジナル
195 人が閲覧しました

Java 8 では、Java コードの記述方法を変革し、より効率的、表現力豊か、そして機能的なものにする強力な新機能が導入されました。このブログでは、ラムダや Stream API など、Java 8 の主要な機能をいくつか紹介します。初心者でも経験豊富な開発者でも、このガイドはこれらの更新を理解し、活用してよりクリーンで簡潔なコードを作成するのに役立ちます。

ラムダ式 λ

ラムダ式は、パラメータを受け取り、値を返す単純なコード ブロックです。これらは関数に似ていますが、名前は必要なく、メソッドの本体に直接実装できます。ラムダ式は主に関数インターフェイスを実装するために使用され、長い定型コードを排除して読みやすさを強化します。

ラムダ式なし

Java eatures Made Simple: A Quick Guide

ラムダ式を使用する

Java eatures Made Simple: A Quick Guide

機能インターフェイス

Java の関数型インターフェイスは、単なる 1 つのジョブを持つインターフェイスです。抽象メソッド (本体のないメソッド) が 1 つだけあります。これを 1 つのタスクの青写真と考えてください

たとえば、Printable という関数インターフェイスがある場合、詳細を指定せずにテキストを印刷する方法を定義する print メソッドが 1 つある可能性があります。これを使用する場合は、print が実際に行うべき処理 (コンソールへの印刷またはファイルへの書き込み) の詳細を指定するだけです。

Printable Functional Interface

メソッドのリファレンス

Java 8 のメソッド参照は、コードをすっきりと読みやすくするショートカットのようなものです。実際にメソッドを直接呼び出すことなく、Java に特定のメソッドを実行するように指示したいと想像してください。完全なコマンドを書き出す代わりに、メソッドを指すアドレスのような「参照」でコマンドを指すことができます。

メソッド参照の主なタイプと、それらが例でどのように機能するかを詳しく見てみましょう:

1) 静的メソッドへの参照

Java eatures Made Simple: A Quick Guide

ここで、Test::displayMessage は、コンテンツをコンソールに出力する Test クラスの displayMessage メソッドを指します。これは省略表現であり、Java は print メソッド

を使用するときに Test.displayMessage() を実行することを認識しています。

2) インスタンス メソッドへの参照

Java eatures Made Simple: A Quick Guide

ここで、testObj::displayMessage は、Test クラスの testObj オブジェクトの displayMessage メソッドを指し、コンテンツをコンソールに出力します。これは省略表現であり、Java は print メソッド

を使用するときに testObj.displayMessage() を実行することを認識しています。

3) コンストラクターへの参照

Java eatures Made Simple: A Quick Guide

ここで、Message::new は、Printable インターフェイスの print(String msg) メソッドと一致するコンストラクター参照です。 printable.print(...) が呼び出されると、指定されたメッセージを引数として使用して Message クラスのコンストラクターがトリガーされます。

ストリームAPI

Java 8 の Stream API は、コレクション (リスト、セット、配列など) をより効率的に処理する方法です。ストリームは、元のデータを変更することなく 1 つずつ処理できる一連のデータ項目であると考えてください。これは、リストまたはコレクション内のデータをフィルター、並べ替え、または変換する場合に特に便利です。

ストリームは、データを段階的に通過させて処理させる「パイプライン」のようなものです。単語のリストがあり、「J」で始まるすべての単語を検索し、大文字にして出力したいとします。ストリームを使用すると、長いループを作成せずに、これを数行で実行できます。

Java eatures Made Simple: A Quick Guide

ストリーム操作の種類

  • 中間操作 (フィルター、マップ、ソートなど) はすぐには結果を生成しませんが、変更されたストリームを返します。
  • 端末操作 (forEach、collect、reduce など) により最終結果が生成され、ストリームが終了します。

オプション

Java では、null のオブジェクトを使用しようとすると、NullPointerException が発生します。これは、Java でのエラーの最も一般的な原因の 1 つです。 Optional は、値が存在しない可能性があることを明確にすることで、これらのエラーを回避するのに役立ちます。 null を直接扱う代わりに、値を含むか空の Optional オブジェクトを操作します。

Java eatures Made Simple: A Quick Guide

何が起こっているかは次のとおりです:

  • .isPresent() は内部に値があるかどうかを確認します。
  • .get() は値を取得しますが、値が存在する場合のみ、値が存在しない場合は NoSuchElementException をスローします

デフォルトのメソッド

Java 8 より前は、インターフェイスに新しいメソッドを追加する場合、そのインターフェイスを実装するすべてのクラスが、そのメソッドの独自のバージョンを提供する必要がありました。特にたくさんのクラスがある場合、これは面倒になる可能性があります。デフォルトのメソッドを使用すると、既存のコードを壊さずに新しいメソッドをインターフェイスに追加できます。インターフェースを実装するクラスは、デフォルトのメソッドをそのまま使用することも、独自のバージョンでオーバーライドすることも選択できます。

Java eatures Made Simple: A Quick Guide

メイン メソッドでは、InnerTest のインスタンスを作成し、そのインスタンスに対して print を呼び出します。これにより、InnerTest でオーバーライドされた print メソッドが呼び出されます。InnerTest2 は print メソッドをオーバーライドしていないため、Printable インターフェイスからのデフォルトの実装を使用します。

出力:
InnerTest:こんにちは、Java の世界へようこそ
デフォルトのメソッド: こんにちは、Java の世界へようこそ

以上がJava の機能をシンプルに: クイックガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!