ホームページ Java &#&チュートリアル Javaのオプション関数を使用してnull値の場合を処理する方法

Javaのオプション関数を使用してnull値の場合を処理する方法

Oct 20, 2023 am 10:06 AM
java optional Null値の扱い

Javaのオプション関数を使用してnull値の場合を処理する方法

Java で Optional 関数を使用して null 値を処理する方法

Java プログラミングでは、null 値が処理される状況によく遭遇します。 Null ポインター例外は一般的なエラーです。この状況を回避するために、Java 8 では、null 値の状況を処理する Optional クラスが導入されました。 Optional クラスは、空でない値を含めることができる、または値を含めないコンテナー クラスです。

Optional クラスを使用すると、null 値の状況をよりエレガントに処理し、null ポインター例外を回避できます。以下では、Java で Optional 関数を使用して null 値の状況を処理する方法を紹介し、具体的なコード例を示します。

  1. オプション オブジェクトの作成
    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();
ログイン後にコピー
  1. 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对象不包含值");
}
ログイン後にコピー
  1. 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));
ログイン後にコピー
  1. orElse メソッドを使用してデフォルト値を設定します。
    処理するときOptional オブジェクトでは、多くの場合、 を設定する必要があります。 Optional オブジェクトが空の場合、デフォルト値が使用されます。 orElse メソッドを使用してデフォルト値を設定できます。 orElse メソッドはパラメータとして値を受け取り、Optional オブジェクトが空の場合はその値を返します。

次に、orElse メソッドを使用してデフォルト値を設定するコード例を示します。

Optional<String> optional = Optional.ofNullable(null);
String value = optional.orElse("默认值");
System.out.println("获取到的值为:" + value);
ログイン後にコピー
  1. orElseGet メソッドを使用してデフォルト値を設定する
    さらにorElse メソッドを使用してデフォルト値を設定するだけでなく、orElseGet メソッドを使用することもできます。 orElse メソッドと比較して、orElseGet メソッドはパラメータとして Supplier 関数インターフェイスを受け取り、デフォルト値を返す get メソッドを定義します。 Optional オブジェクトが空の場合、この関数インターフェイスが呼び出され、デフォルト値を取得します。

以下は、orElseGet メソッドを使用してデフォルト値を設定するコード例です。

Optional<String> optional = Optional.ofNullable(null);
String value = optional.orElseGet(() -> {
    // 通过一些逻辑来计算默认值
    return "计算得到的默认值";
});
System.out.println("获取到的值为:" + value);
ログイン後にコピー
  1. 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));
ログイン後にコピー
  1. 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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Javaの平方根 Javaの平方根 Aug 30, 2024 pm 04:26 PM

Java の平方根のガイド。ここでは、Java で平方根がどのように機能するかを、例とそのコード実装をそれぞれ示して説明します。

Javaの完全数 Javaの完全数 Aug 30, 2024 pm 04:28 PM

Java における完全数のガイド。ここでは、定義、Java で完全数を確認する方法、コード実装の例について説明します。

Javaのアームストロング数 Javaのアームストロング数 Aug 30, 2024 pm 04:26 PM

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

Java の乱数ジェネレーター Java の乱数ジェネレーター Aug 30, 2024 pm 04:27 PM

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

ジャワのウェカ ジャワのウェカ Aug 30, 2024 pm 04:28 PM

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

Javaのスミス番号 Javaのスミス番号 Aug 30, 2024 pm 04:28 PM

Java のスミス番号のガイド。ここでは定義、Java でスミス番号を確認する方法について説明します。コード実装の例。

Java Springのインタビューの質問 Java Springのインタビューの質問 Aug 30, 2024 pm 04:29 PM

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

Java 8 Stream Foreachから休憩または戻ってきますか? Java 8 Stream Foreachから休憩または戻ってきますか? Feb 07, 2025 pm 12:09 PM

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

See all articles