今日の予習 Optional<T>クラス java.util.Optional<T>について話をします。 サンプルソースをあげときます。 その0 Optional<T>未使用。nullを取得、toString()を呼び出すとNullPointerExceptionがスローされる。 その1 Employeeのインスタンスを保持するOptional<T>生成。 isPresent()でOptionalインスタンスがnullかチェック。 その2 orElse()でOptionalインスタンスが保持する値を取得。 Optionalインスタンスが保持する値がnullならID=0、名前=ダミーのEmployeeインスタンスを生成する。 その3 orElseGet()でOptionalインスタンスが保持する値を取得。 Optionalインスタンスが保持する値がnullならID=0、名前=ダミーのEmployeeインスタンスを生成する。 その4 ifPresent()でOptionalインスタンスが保持する値が非nullなら表示実行。 その5 map()でOptionalインスタンスが保持する値をEmployeeからStringへ加工。 その6 filter()でOptionalインスタンスが保持する値の部署がDept.ADMINかチェック。 今日のホワイトボード null? Javaはプリミティブ型(intとかlogn、double)変数を除き、xxクラス型の変数にはインスタンスへの参照情報が代入される。 図 参照情報がない = nullが代入されている 上図左側のString型変数strは参照すべきインスタンスがありません。そんなときにはnullが代入されています。 参照情報がない = nullが代入されている です。 さらに参照情報がない変数strでlength()メソッドを呼び出しています。 length()はインスタンスメソッドです。 しかしながらstrが参照するインスタンスがないため、NullPointerExceptionがスローされます。 Optional<T>クラス Optional<...