null以外の値が含まれている場合も含まれていない場合もあるコンテナ・オブジェクトです。値が存在する場合、isPresent()はtrueを返し、get()は値を返します。 含まれる値の有無に応じて追加メソッドが提供されます。たとえば、orElse() (値が存在しない場合にデフォルト値を返す)、ifPresent() (値が存在する場合にコードのブロックを実行する)など。 これは値ベースのクラスで、Optionalのインスタンスに対して、ID依存操作(参照等価性(==)、IDハッシュ・コード、同期など)を使用すると、予期できない結果になる可能性があり、避けてください。