Java 8 のオプション クラス: null の可能性がある値を処理する方法
ソフトウェア開発では、null の可能性があるさまざまな値を処理する必要があることがよくあります。従来の処理方法は、値が空であるかどうかを条件判定で判定し、それに応じた処理を行うというものでした。この方法は面倒なだけでなく、コードが長くなり、可読性が低下しやすくなります。この問題を解決するために、Java 8 では新しいクラス Optional が導入されました。これは、潜在的な null 値を処理するための洗練された方法を提供します。
Optional クラスは、任意のタイプの値をラップでき、一連のメソッドを使用してこれらの値を処理できるラッパー クラスです。 Optional クラスの使用例をいくつか見てみましょう。
静的メソッド Optional.of() を使用して、空ではない Optional オブジェクトを作成できます。渡された値が null の場合、 NullPointerException をスローします。例:
String name = "John"; Optional<String> optionalName = Optional.of(name);
静的メソッド Optional.ofNullable() を使用して Optional オブジェクトを作成することもでき、渡される値は null にすることもできます。例:
String name = null; Optional<String> optionalName = Optional.ofNullable(name);
メソッド isPresent() を使用して、Optional オブジェクトが空かどうかを判断できます。 Optional オブジェクトの値が存在する場合は true を返し、Optional オブジェクトの値が空の場合は false を返します。例:
Optional<String> optionalName = Optional.of("John"); boolean isPresent = optionalName.isPresent();
Optional オブジェクトの値が空の場合、メソッド orElse() または orElseGet() を使用して、デフォルト値。このようにして、Optional オブジェクトが空の場合、デフォルト値が返されます。例:
Optional<String> optionalName = Optional.ofNullable(null); String name = optionalName.orElse("Default");
Optional<String> optionalName = Optional.ofNullable(null); String name = optionalName.orElseGet(() -> "Default");
メソッド map() および flatMap() を使用して、オプション オブジェクトで操作を実行し、新しい Optional を返すことができます。物体。例:
Optional<String> optionalName = Optional.of("John"); optionalName.map(String::toUpperCase);
Optional<String> optionalName = Optional.of("John"); optionalName.flatMap(name -> Optional.of(name.toUpperCase()));
メソッド orElseThrow() を使用して、Optional オブジェクトが空の場合に例外をスローできます。例:
Optional<String> optionalName = Optional.ofNullable(null); optionalName.orElseThrow(IllegalStateException::new);
上記は、Optional クラスの一般的な使用法のほんの一部ですが、特定のニーズに応じて選択して使用できる他の多くのメソッドも提供します。
概要
Java 8 の Optional クラスは、null 値の可能性を処理する洗練された方法を提供します。煩雑な条件判断を回避し、コードをより簡潔、明確、読みやすくすることができます。 Optional クラスを使用する場合は、null ポインター例外のスローと処理に注意し、さまざまなニーズを満たす適切なメソッドを選択する必要があります。
この記事が Java 8 の Optional クラスの理解に役立つことを願っています。
以上がJava 8 のオプション クラス: null 値の可能性がある値を処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。