skillup

技術ブログ

Java

Optionalについて その1

投稿日:

Streamに続いて、Java8で新搭載された機能がOptional です。

Javaではnullの処理をいちいちしなくてはいけないのがいろいろと面倒ですが、Optionalの機能をうまく使うことで可読性の高いコードを書くことができます。

私もまだ調査中なので本当に基本的な部分だけ紹介します。

Optionalとは?

Optionalとはnullかも知れない値をラップできる、オブジェクトです。

通常の処理

現状、Javaでは値にnullが入っているオブジェクトに対して処理をしようとするとExceptionが発生します。

これを防ぐために下記のようなチェック方法があります。

nullチェックその1

ifでチェック

この場合、何も出力されません。

nullチェックその2

例外を使ってキャッチする方法もあります。

nullと出力されます。

Optionalの使い方

Optionalはこのようにnullの可能性がある値をラップします。

メソッドの説明ですが、
Optional.ofNullable()はnullかもしれない値を取得します。
isPresent()は存在チェックなのでbooleanを返します。
str1.get()は値を取得します。
今回の場合、一切出力はされません。(文字がある場合、表示されます。)

ラムダ式を使った使い方

なお、下記のようにラムダ式を使った表記も可能です。

まだ全然調べられてないのでとりあえず今回はここまでにします。

-Java
-,

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

JavaEEでリダイレクトを伴うデータ入出力(flashの活用)

JavaEEで何らかの処理を行い、リダイレクトさせる場合、リダイレクト前のデータを保存し、リダイレクト後のページにデータをもちこしたいときなどがあると思います。 オブジェクトの変数自体はスコープアノテ …

no image

リファクタリング

業務で大幅なリファクタリングをする機会があり、その際の注意だったり、気をつけるべきことなどをまとめておきます。 自分用なので自分にしかわからない言葉で書いてある可能性が大きいです。 気になる方は問い合 …

no image

フィールド以外のプロパティをエンティティに持たせる

JPAでは基本的に1テーブル、1クラスです。 このためプロパティは必然的にテーブルのフィールドに対応しています。 ただ、必ずしもプロパティだけでなく、臨時で持たせておきたい、プロパティがあったりします …

no image

dbUnitの使い方

えーJavaで有名なテストツールDBUnitについて。 DbUtilではありませんので間違えないように。(私は最初間違えました・・・) まだ全然使い込んでるわけではありませんがどんなことができるかとい …

no image

クラスパスの通し方

今回はNetbeansでなく、IDEを使わずにJavaを使う場合の記事です。 Javaで開発している人の99%はIDEで開発をしていると思うのですが、サーバー上で一時的テストをしないといけないような場 …

アーカイブ