技術とか戦略とか

証券レガシーシステムを8年いじってから転職した普通の文系SEによるブログ。技術のみではなく趣味の戦略考察についても。

java:今さらながらJava8新機能について調べてみた(Optional)

Java8でどのような機能が追加されたのか確認していました。
まだ紹介していない重要な機能として「Optional」があるので、今回はそれについて書きます。
 
Optionalとは、値を持たない場合がある(nullである)ことを表すクラス(コンテナオブジェクト)です。
Optionalクラスを使用することで、従来のnullチェックを標準的なメソッドで実装できるようになります。
 
下記ページの説明がわかりやすかったです。
 
Java8のOptionalの使い方について - TASK NOTES

https://www.task-notes.com/entry/20150708/1436324400
 
上記ページからの引用になりますが、
 
Person person = getPerson();
if (person != null) {
    person.getName();
}
 
というnullチェックを
 
Optional<Person> personOpt = Optional.ofNullable(getPerson());
personOpt.ifPresent(person -> person.getName());
 
のような標準メソッド(ifPresent)で実装できるようになります。
(ifPresentメソッドは、オブジェクトがnullではない場合のみ()内を実行し、そうではない場合は何もしないというメソッドです)
 
--------------------
 
なお、これまで紹介してきた機能の他にも、Java8では以下のような機能が追加されています。
・Date and Time(容易に日付操作を行えるAPI)の追加
・defaultキーワードをつけることでinterfaceにメソッドの実装を書けるようになった
・文字列連結用のメソッドの追加
Base64エンコードとデコードが正式サポート
 
詳細は以下のページに書かれています。
 
Java 8 新機能つまみぐい

https://qiita.com/oohira/items/9c13f92815266cc5112c