JavaもJava8でstream処理やラムダ、Optionalの型などが追加されモダンなプログラミングが幾つか書けるような機構が適応されてきました。 しかし、Javaで書くプログラマーはモダンな実装する文化は浸透しているのでしょうか? 今回はモダンな実装の仕方として、「Immutable Programming」と「nullの扱いについて」について書いてみようと思います。 前提 Webアプリケーションサーバを実装する時を想定しています。 もちろんネイティブの実装のときにも適応される部分が多いです。 Java8の書き方で説明します。 Immutable Programming(イミュータブルプログラミング)とは 凄く簡単に説明すると、変数に再代入しないということです。 全てfinalを付けてプログラミングするようなものですね。 まだ、やったことがない人はそんなことが出来るのか?ということを
![モダンなJavaの書き方。Immutable Java、Null安全を考えてみる。](https://cdn-ak-scissors.b.st-hatena.com/image/square/d3449ec1d35bb76f95326c31cffc98030f26afc0/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Fadvent-calendar-ogp-background-f625e957b80c4bd8dd47b724be996090.jpg%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUUzJTgzJUEyJUUzJTgzJTgwJUUzJTgzJUIzJUUzJTgxJUFBSmF2YSVFMyU4MSVBRSVFNiU5QiVCOCVFMyU4MSU4RCVFNiU5NiVCOSVFMyU4MCU4MkltbXV0YWJsZSUyMEphdmElRTMlODAlODFOdWxsJUU1JUFFJTg5JUU1JTg1JUE4JUUzJTgyJTkyJUU4JTgwJTgzJUUzJTgxJTg4JUUzJTgxJUE2JUUzJTgxJUJGJUUzJTgyJThCJUUzJTgwJTgyJnR4dC1jb2xvcj0lMjMzQTNDM0MmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkNtaWRkbGUmcz1kYjhjMDNiODM5MjgxZGFmMDFhNzJkZWI3NGNkN2NiNA%26mark-x%3D142%26mark-y%3D151%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwbmV3dGEmdHh0LWNvbG9yPSUyMzNBM0MzQyZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTRjODljOTVkNDVlODEyNmZjYTgyMDA1MDNlZWQzNGJh%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Dbecd464f515cd64aaf74ca999b12adcb)