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 クラスの基本的な使い方を見てみましょう。
サンプル コード:
String name = "Alice"; Optional<String> optionalName = Optional.ofNullable(name); // 另一种方式创建空的 Optional Optional<String> emptyOptional = Optional.empty();
サンプル コード:
if (optionalName.isPresent()) { System.out.println("存在值"); } else { System.out.println("值为空"); }
サンプル コード:
if (optionalName.isPresent()) { System.out.println("姓名为:" + optionalName.get()); } else { System.out.println("姓名为空"); }
orElseThrow() の使用法:
上記の基本的な使用法に加えて、Optional クラスには強力なメソッド orElseThrow() も提供されます。このメソッドは、Optional オブジェクトに値が含まれていない場合に、指定された例外をスローします。
サンプル コード:
Double price = null; Double finalPrice = Optional.ofNullable(price) .orElseThrow(() -> new IllegalArgumentException("价格为空")); System.out.println("最终价格为:" + finalPrice);
上記のコードでは、価格が空の場合、IllegalArgumentException 例外がスローされます。
サンプル コード:
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 例外がスローされます。
結論:
この記事では、Java 8 の Optional クラスの orElseThrow() メソッドの使用方法を紹介し、コード例を通じて null 値の可能性を処理する方法を示します。 Optional クラスを使用すると、コードの安定性と安全性が向上し、NULL ポインター例外の頻度を減らすことができます。ただし、Optional クラスを使用する場合は、コードが冗長で理解しにくくなる可能性があるため、やりすぎないように注意する必要があります。この記事が読者の Optional クラスの理解と使用に役立つことを願っています。
以上がJava 8 のオプション クラス: orElseThrow() メソッドを使用して null の可能性がある値を処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。