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 新機能つまみぐい