オプションは、Javaのコンテナクラスとして定義されています。むしろ、1つの要素のみを備えたコンテナが保存されます。
非ヌル値を含む場合と含まないコンテナオブジェクト。
オプションのクラス構造オプションプロパティ
オプションのクラスには2つのプロパティが含まれています。
クラス属性:空のオブジェクト属性:値
空の属性は、値nullのオプションオブジェクトを保存するために使用されます。
値属性は、非ヌルオブジェクトを保存するために使用されます。
オプションの方法
オプションには2つの建設方法があり、どちらもプライベートによって変更されています。
private optional(){this.value = null;} private optional(t value){this.value = objects.requirenonnull(value);}パラメーターレス構造方法は、空の初期化に使用されます。パラメーターコンストラクターは、非ヌルオブジェクトの初期化に使用されます。
コンストラクターはプライベートに変更されているため、オプションは、インスタンス化したい場合にのみクラスメソッドを介してオブジェクトを呼び出すことができます。オプションは、3つのクラスメソッドを提供します。
空:値のnullでオプションのオブジェクトを返します:nullのオプションオブジェクトの非ヌルの値を返します:値の値は、パラメーターがnullであるかどうかに応じて、対応するオプションオブジェクトを返します。
public static <t> optional <t> empty(){optional <t> t =(optional <t>)empty; return t;} public static <t> optional <t> of(t value){return new optional <>(value);} public static <t> optional <t> ofnullable(t value){return value == null? empty():of(value);}例メソッドはじめに
| 方法 | パラメータータイプ | 返品タイプ | 説明します | |
|---|---|---|---|---|
| 得る | なし | t | 値は、nullのnosucchelementexception例外をスローします | |
| ispresent | なし | ブール | 値がnullの場合、falseが返されます | |
| ifpresent | 消費者<?スーパーT> | 空所 | オプションのインスタンスに値がある場合は、消費者に電話してください。そうしないと、処理されません。 | |
| フィルター | 述語<?スーパーT> | オプション<t> | 値が存在し、提供された述語を満たしている場合、値が返されます。それ以外の場合、空のオプションオブジェクトが返されます | |
| 地図 | 関数<?スーパーT、? u>を拡張します | オプション<u> | 値が存在する場合、提供されたマッピング関数呼び出しが値で実行され、オプションの<u>オブジェクトが返されます。 | |
| フラットマップ | 関数<?スーパーT、オプション<U >> | オプション<u> | 値が存在する場合、提供されたマッピング関数呼び出しが値で実行され、非ヌルのオプションオブジェクトを返します。 | |
| orelse | t | t | 値がある場合は返し、それ以外の場合はデフォルト値を返します | |
| orelseget | サプライヤー<? t>を拡張します | t | 値がある場合は値を返し、それ以外の場合は指定されたサプライヤーインターフェイスによって生成された値を返します | |
| orelsethrow | サプライヤー<? x>を拡張します | <x拡張可能> | 値がある場合はそれを返します。そうしないと、指定されたサプライヤーインターフェイスによって生成された例外がスローされます | |