ホームページ >Java >&#&チュートリアル >Java 8 のオプション クラス: orElseThrow() メソッドを使用して null の可能性がある値を処理する方法

Java 8 のオプション クラス: orElseThrow() メソッドを使用して null の可能性がある値を処理する方法

WBOY
WBOYオリジナル
2023-07-30 13:57:133068ブラウズ

Java 8 のオプション クラス: orElseThrow() メソッドを使用して null の可能性のある値を処理する方法

はじめに:
Java 開発では、null の可能性のある値の条件を処理するという問題によく遭遇します。 Java の以前のバージョンでは、通常、値が存在しないことを示すために null を使用しました。ただし、null を使用すると、null かどうかを頻繁に判定する必要があり、null ポインタ例外が発生しやすいなどの問題があります。これらの問題を解決するために、Java 8 では Optional クラスが導入されました。 Optional クラスは、潜在的な null 値を処理するための洗練された方法を提供します。
この記事では、Optional クラスの重要なメソッドである orElseThrow() を紹介し、サンプル コードを通じてその使用法を示します。

Optional クラスの基本的な使用法:
Optional クラスは Java 8 で導入されたコンテナ クラスで、null の可能性がある値をラップするために使用されます。これは、NULL 値の状況に対処するのに役立ついくつかのメソッドを提供します。まず、Optional クラスの基本的な使い方を見てみましょう。

  1. オプション オブジェクトの作成
    静的メソッド Optional.ofNullable(T value) を使用して、オプション オブジェクトを作成できます。値が null の場合は空の Optional オブジェクトが作成され、value が null でない場合は値を含む Optional オブジェクトが作成されます。

サンプル コード:

String name = "Alice";
Optional<String> optionalName = Optional.ofNullable(name);

// 另一种方式创建空的 Optional
Optional<String> emptyOptional = Optional.empty();
  1. Optional の値が存在するかどうかを確認する
    Optional オブジェクトの isPresent() メソッドを呼び出すことで、値が存在するかどうかを確認できます。 。このメソッドは、Optional オブジェクトに null 以外の値が含まれているかどうかを示すブール値を返します。

サンプル コード:

if (optionalName.isPresent()) {
    System.out.println("存在值");
} else {
    System.out.println("值为空");
}
  1. Optional の値の取得
    Optional オブジェクトの get() メソッドを呼び出すことで、その値を取得できます。ただし、get() メソッドを呼び出す前に、isPresent() メソッドを使用して、Optional が存在するかどうかを確認することをお勧めします。 Optional が空の場合、get() メソッドを呼び出すと NoSuchElementException 例外がスローされるためです。

サンプル コード:

if (optionalName.isPresent()) {
    System.out.println("姓名为:" + optionalName.get());
} else {
    System.out.println("姓名为空");
}

orElseThrow() の使用法:
上記の基本的な使用法に加えて、Optional クラスには強力なメソッド orElseThrow() も提供されます。このメソッドは、Optional オブジェクトに値が含まれていない場合に、指定された例外をスローします。

  1. orElseThrow() メソッドを使用して例外をスローする
    Optional オブジェクトの orElseThrow(Suppliered2cfe1064f65ed1a38f9e2ed43b9db6ExceptionSupplier) メソッドを呼び出すことで、スローされる例外を指定できます。ここで渡されるのは、異常なコンストラクター メソッド参照であることに注意してください。

サンプル コード:

Double price = null;
Double finalPrice = Optional.ofNullable(price)
        .orElseThrow(() -> new IllegalArgumentException("价格为空"));

System.out.println("最终价格为:" + finalPrice);

上記のコードでは、価格が空の場合、IllegalArgumentException 例外がスローされます。

  1. カスタマイズされた例外クラス
    特定の例外を処理するために例外クラスをカスタマイズすることもできます。

サンプル コード:

class PriceNullException extends RuntimeException {
    public PriceNullException(String message) {
        super(message);
    }
}

Double price = null;
Double finalPrice = Optional.ofNullable(price)
        .orElseThrow(() -> new PriceNullException("价格为空"));

System.out.println("最终价格为:" + finalPrice);

上記のコードでは、価格が空の場合、カスタム PriceNullException 例外がスローされます。

  1. orElseThrow() メソッドと他のメソッドの比較
    前の get() メソッドと比較すると、orElseThrow() メソッドは、Optional が空の場合に NoSuchElementException 例外をスローしませんが、例外をスローする可能性があります。カスタム例外をスローします。これにより、コードがすっきりして読みやすくなります。

結論:
この記事では、Java 8 の Optional クラスの orElseThrow() メソッドの使用方法を紹介し、コード例を通じて null 値の可能性を処理する方法を示します。 Optional クラスを使用すると、コードの安定性と安全性が向上し、NULL ポインター例外の頻度を減らすことができます。ただし、Optional クラスを使用する場合は、コードが冗長で理解しにくくなる可能性があるため、やりすぎないように注意する必要があります。この記事が読者の Optional クラスの理解と使用に役立つことを願っています。

以上がJava 8 のオプション クラス: orElseThrow() メソッドを使用して null の可能性がある値を処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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