Java 8 - オプションのクラス
Optional は、null 以外のオブジェクトを格納するために使用されるコンテナー オブジェクトです。オプションのオブジェクトは、値が存在しない null を表すために使用されます。このクラスには、null 値をチェックする代わりに、値を「使用可能」または「使用不可」として処理するコードを容易にするさまざまなユーティリティ メソッドがあります。これは Java 8 で導入され、Guava の Optional に似ています。
クラス宣言
以下は、java.util.Optional
public final class Optional<T> extends Object
クラス メソッド
Sr.No. | 方法と説明 |
---|---|
1 |
static 空の Optional インスタンスを返します。 |
2 | boolean equals(Object obj) 他のオブジェクトがこの Optional と「等しい」かどうかを示します。 |
3 |
オプションの 値が存在し、その値が特定の述語と一致する場合は、値を説明する Optional を返します。それ以外の場合は、空の Optional を返します。 |
4 | Optional flatMap(Function super T,Optional> マッパー) 値が存在する場合、提供された Optional-bearing マッピング関数をそれに適用し、その結果を返します。それ以外の場合は、空の Optional を返します。 |
5 | get() この Optional に値が存在する場合は値を返し、それ以外の場合は NoSuchElementException をスローします。 |
6 | int hashCode() 存在する場合は現在の値のハッシュ コード値を返し、値が存在しない場合は 0 (ゼロ) を返します。 |
7 | void ifPresent(Consumer super T> consumer) 値が存在する場合、その値で指定されたコンシューマーを呼び出します。それ以外の場合は何もしません。 |
8 | ブール値 isPresent() 値が存在する場合は true、そうでない場合は false を返します。 |
9 | オプションの map(Function super T,? extends U> mapper) 値が存在する場合は、指定されたマッピング関数をそれに適用し、結果が null でない場合は、結果を説明する Optional を返します。 |
10 |
static 指定された現在の null 以外の値を持つ Optional を返します。 |
11 |
static 指定された値を記述する Optional を返します。null でない場合は、空の Optional を返します。 |
12 | T orElse(T その他) 存在する場合は値を返し、そうでない場合はその他を返します。 |
13 | T orElseGet(Supplier extends T> other) 存在する場合は値を返し、そうでない場合は other を呼び出し、その呼び出しの結果を返します。 |
14 |
含まれている値が存在する場合はそれを返します。それ以外の場合は、提供されたサプライヤーによって作成される例外をスローします。 |
15 | 文字列 toString() デバッグに適した、この Optional の空でない文字列表現を返します。 |
このクラスは、次のクラスからメソッドを継承します −
- java.lang.Object
オプションの例
たとえば、C:\> JAVA.
などで任意のエディターを使用して、次の Java プログラムを作成します。Java8Tester.java
ライブデモimport java.util.Optional; public class Java8Tester { public static void main(String args[]) { Java8Tester java8Tester = new Java8Tester(); Integer value1 = null; Integer value2 = new Integer(10); //Optional.ofNullable - allows passed parameter to be null. Optional<Integer> a = Optional.ofNullable(value1); //Optional.of - throws NullPointerException if passed parameter is null Optional<Integer> b = Optional.of(value2); System.out.println(java8Tester.sum(a,b)); } public Integer sum(Optional<Integer> a, Optional<Integer> b) { //Optional.isPresent - checks the value is present or not System.out.println("First parameter is present: " + a.isPresent()); System.out.println("Second parameter is present: " + b.isPresent()); //Optional.orElse - returns the value if present otherwise returns //the default value passed. Integer value1 = a.orElse(new Integer(0)); //Optional.get - gets the value, value should be present Integer value2 = b.get(); return value1 + value2; } }
結果を確認する
javac を使用してクラスをコンパイルします 次のようにコンパイラ-
C:\JAVA>javac Java8Tester.java
次のように Java8Tester を実行します −
C:\JAVA>java Java8Tester
次の出力が生成されるはずです −
First parameter is present: false Second parameter is present: true 10
Java