前回までの解説でまだ紹介していないStreamインタフェースのメソッドは、いずれも戻り値の型がOptionalクラスという共通点があります。 Optionalクラスは、Java SE 8で導入された新しい概念を表すクラスです。そこで、今回はストリームのメソッドを紹介する前に、このOptionalクラスについて紹介します。 Optionalクラス Javaでコードを書いていると、どうしても避けて通れないのがnullチェックです。 たとえば、リスト1のようにメソッドの戻り値のnullチェックを行うなど、頻繁に書かなくてはならないですし、目にすることも少なくありません。 リスト1 典型的なnullチェック Bar bar = foo(); if (bar != null) { // 正常な場合の処理 } else { // nullの場合の処理 } もちろん、nullチェックは防御的プログラミン