Java の Optional クラスの使い方は?
JavaのOptionalクラスは、nullになり得るオブジェクトを扱うためのコンテナクラスです。可能性のある空の値を扱うための優雅な方法を提供し、NullPointerExceptionの発生を回避します。
Optionalクラスの使用には主に以下の手順があります:
- Optionalオブジェクトを作成するには、Optional.of()またはOptional.ofNullable()という静的メソッドを使用することができます。Optional.of()メソッドでは、渡されるオブジェクトがnullであってはならず、nullが渡されるとNullPointerExceptionがスローされます。一方、Optional.ofNullable()メソッドはnullをパラメータとして受け入れることができます。
- Optionalオブジェクトの中にnull以外の値が存在するかどうかを判定するには、isPresent()メソッドを使用できます。
- Optionalオブジェクトの値を取得するには、get()メソッドを使用します。get()メソッドを呼び出す前に、isPresent()メソッドを使用して判定することをお勧めします。これにより、NoSuchElementException例外が発生するのを防ぐことができます。
- Optionalオブジェクトが空かどうかを判断するには、isEmpty()メソッドを使用します。Optionalオブジェクトの値がnullの場合に空と判断されます。
- Optionalオブジェクト内の値を取得するにはorElse()メソッドを使用して、値が空の場合に指定されたデフォルト値を返すことができます。
- 関数を使用して値を処理する:Optionalオブジェクト内の値を変換するためにmap()メソッドを使用できます。このメソッドは、関数を引数として受け取り、その関数をOptionalオブジェクト内の値に適用して新しいOptionalオブジェクトを返します。
Optionalクラスを使用した簡単な例を以下に示します。
Optional<String> optional = Optional.of("Hello World");
System.out.println(optional.isPresent()); // 输出 true
System.out.println(optional.get()); // 输出 "Hello World"
System.out.println(optional.isEmpty()); // 输出 false
Optional<String> optional2 = Optional.ofNullable(null);
System.out.println(optional2.isPresent()); // 输出 false
System.out.println(optional2.orElse("Default Value")); // 输出 "Default Value"
Optional<String> optional3 = Optional.of("Hello");
Optional<String> result = optional3.map(s -> s + " World");
System.out.println(result.get()); // 输出 "Hello World"
Optionalクラスはnullを置き換えるためではなく、nullの可能性を扱うために使用されます。Optionalクラスを使用する際には、他のnullチェックおよび処理方法と組み合わせて使用すると効果的です。