Javaのオプション関数を使用してnull値の場合を処理する方法
Java で Optional 関数を使用して null 値を処理する方法
Java プログラミングでは、null 値が処理される状況によく遭遇します。 Null ポインター例外は一般的なエラーです。この状況を回避するために、Java 8 では、null 値の状況を処理する Optional クラスが導入されました。 Optional クラスは、空でない値を含めることができる、または値を含めないコンテナー クラスです。
Optional クラスを使用すると、null 値の状況をよりエレガントに処理し、null ポインター例外を回避できます。以下では、Java で Optional 関数を使用して null 値の状況を処理する方法を紹介し、具体的なコード例を示します。
- オプション オブジェクトの作成
Optional クラスを使用する場合は、まず Optional オブジェクトを作成する必要があります。 Optional オブジェクトは、Optional クラスの静的メソッドを呼び出すことによって作成できます。 Optional オブジェクトを作成するには、一般的に 3 つの方法が使用されます。
- of メソッドの使用: of メソッドは、パラメータとして null 以外の値を受け取り、その値を含む Optional オブジェクトを返します。渡された値が null の場合、NullPointerException がスローされます。
- ofNullable メソッドの使用: ofNullable メソッドはパラメータとして値を受け取り、その値を含む Optional オブジェクトを返します。渡された値が null の場合、空の Optional オブジェクト、つまり Optional.empty() が返されます。
- 空のメソッドを使用する: 空のメソッドは空の Optional オブジェクトを返します。
以下は、Optional オブジェクトを作成するコード例です:
Optional<String> nonEmptyOptional = Optional.of("Hello"); Optional<String> nullableOptional = Optional.ofNullable(null); Optional<String> emptyOptional = Optional.empty();
- Optional オブジェクトに値が含まれているかどうかを確認する
Optional オブジェクトを扱うとき、多くの場合、 Optional オブジェクトに null 以外の値が含まれているかどうかを判断する必要があります。 isPresent メソッドを呼び出すことで、Optional オブジェクトに値が含まれているかどうかを確認できます。 isPresent メソッドはブール値を返します。Optional オブジェクトに null 以外の値が含まれる場合は true、それ以外の場合は false を返します。
以下は、Optional オブジェクトに値が含まれているかどうかを確認するコード例です。
Optional<String> optional = Optional.ofNullable("Hello"); if (optional.isPresent()) { System.out.println("Optional对象包含值"); } else { System.out.println("Optional对象不包含值"); }
- Get the value of the Optional object
If the Optional object contains空ではない値。この値は get メソッドを呼び出すことで取得できます。 get メソッドは、Optional オブジェクトに含まれる値を返します。 Optional オブジェクトが空の場合、NoSuchElementException がスローされます。
NoSuchElementException のスローを回避するには、isPresent メソッドを使用して、Optional オブジェクトに null 以外の値が含まれているかどうかを判断し、get メソッドを呼び出して値を取得する前に判断します。
以下は、Optional オブジェクトの値を取得するコード例です:
Optional<String> optional = Optional.ofNullable("Hello"); if (optional.isPresent()) { String value = optional.get(); System.out.println("获取到的值为:" + value); } else { System.out.println("Optional对象不包含值"); }
ただし、Optional オブジェクトが空の場合、get メソッドを使用して値を取得することは安全ではありません。 、異常を投げます。したがって、より良いアプローチは、Consumer 関数インターフェイスをパラメーターとして受け取る ifPresent メソッドを使用することです。Optional オブジェクトに null 以外の値が含まれている場合、関数インターフェイスが呼び出されて値を処理します。
次は、ifPresent メソッドを使用して Optional オブジェクトの値を取得するコード例です。
Optional<String> optional = Optional.ofNullable("Hello"); optional.ifPresent(value -> System.out.println("获取到的值为:" + value));
- orElse メソッドを使用してデフォルト値を設定します。
処理するときOptional オブジェクトでは、多くの場合、 を設定する必要があります。 Optional オブジェクトが空の場合、デフォルト値が使用されます。 orElse メソッドを使用してデフォルト値を設定できます。 orElse メソッドはパラメータとして値を受け取り、Optional オブジェクトが空の場合はその値を返します。
次に、orElse メソッドを使用してデフォルト値を設定するコード例を示します。
Optional<String> optional = Optional.ofNullable(null); String value = optional.orElse("默认值"); System.out.println("获取到的值为:" + value);
- orElseGet メソッドを使用してデフォルト値を設定する
さらにorElse メソッドを使用してデフォルト値を設定するだけでなく、orElseGet メソッドを使用することもできます。 orElse メソッドと比較して、orElseGet メソッドはパラメータとして Supplier 関数インターフェイスを受け取り、デフォルト値を返す get メソッドを定義します。 Optional オブジェクトが空の場合、この関数インターフェイスが呼び出され、デフォルト値を取得します。
以下は、orElseGet メソッドを使用してデフォルト値を設定するコード例です。
Optional<String> optional = Optional.ofNullable(null); String value = optional.orElseGet(() -> { // 通过一些逻辑来计算默认值 return "计算得到的默认值"; }); System.out.println("获取到的值为:" + value);
- map メソッドを使用して、Optional オブジェクトの値を変換します
Optional オブジェクトを扱うとき、変換やフィルタリングなど、Optional オブジェクトの値に対していくつかの操作を実行する必要があることがよくあります。 Map メソッドを使用して、Optional オブジェクトの値を変換できます。 Map メソッドは、Function 関数インターフェイスをパラメータとして受け取り、Optional オブジェクトの値を変換するための apply メソッドを定義します。
次に、map メソッドを使用して Optional オブジェクトの値を変換するコード例を示します。
Optional<String> optional = Optional.ofNullable("Hello"); Optional<String> transformedOptional = optional.map(value -> value.toUpperCase()); transformedOptional.ifPresent(value -> System.out.println("转换后的值为:" + value));
- flatMap メソッドを使用して Optional オブジェクトを変換する
Optional オブジェクトを扱う場合、Optional オブジェクトの値に基づいて新しい Optional オブジェクトを取得するなど、Optional オブジェクトの値に対してさらなる操作が必要になる場合があります。 flatMap メソッドを使用して、この機能を実現できます。 flatMap メソッドは、Function 関数インターフェイスをパラメータとして受け取ります。これは、Optional オブジェクトの値を変換し、新しい Optional オブジェクトを返す適用メソッドを定義します。
次は、 flatMap メソッドを使用して Optional オブジェクトを変換するコード例です。
Optional<String> optional = Optional.ofNullable("Hello"); Optional<String> flatMappedOptional = optional.flatMap(value -> { if (value.equals("Hello")) { return Optional.of("World"); } else { return Optional.empty(); } }); flatMappedOptional.ifPresent(value -> System.out.println("转换后的值为:" + value));
总结
在Java编程中,处理空值情况是一个非常常见的需求。使用Optional函数可以更加优雅地处理空值情况,避免出现空指针异常。本文介绍了Javaのオプション関数を使用してnull値の場合を処理する方法,并提供了具体的代码示例。通过学习和使用Optional函数,可以使我们的代码更加安全和健壮。
以上がJavaのオプション関数を使用してnull値の場合を処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









Java のアームストロング番号に関するガイド。ここでは、Java でのアームストロング数の概要とコードの一部について説明します。

Java の乱数ジェネレーターのガイド。ここでは、Java の関数について例を挙げて説明し、2 つの異なるジェネレーターについて例を挙げて説明します。

Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです
