Posted at

Java9 調査メモ

More than 1 year has passed since last update.

Java9で新しく追加された機能について知識を深めるために

チームメンバー各自で調査を実施し、調査結果を下記にまとめました。

【1】Project Jigsaw

 Javaをモジュール化できるもの。

 複数クラスを一つのパッケージとしてまとめることができ、

 Javaの依存関係をすっきりさせることができる。

 公開できるクラスの制限も便利。

 コーディング作業には直接影響しなさそう。

【2】Javadoc

 HTML5で書けるようになった

 └今迄は4までしか対応していなかったが5に対応して文法がシンプルになった。

 └モバイル機器の画面に対応できるようになった。

 Javadoc用の検索窓の追加

 └今迄はAPIの中身は検索窓がなかったためGoogleで検索していたが、

  検索窓ができたことでAPIの調査が楽になりそう。

【3】変更不可能なコレクション要素が作りやすくなった

 具体例:List, Map, Set

 今迄はfinalを使っても.addなどで要素の追加ができるため、

 Collections.unmodifiableというメソッドを使って変更不可能なものに設定していたが、

 一文が長くなりコードが見にくいという問題があった。

 Java9ではList.ofメソッドを使うことで変更不可能なリストを簡単に作れるようになった。

 (コードが見やすくなる)

 Mapはいわゆる不変マップ。英語では"Immutable Map"。

 Listと同様、こちらも従来よりも簡単に書けるようになった

 (初期化の段階でMapに格納したい要素を羅列するだけで作成できる)。

【4】jshell

 JavaをShellのように実行できる。

 REPL(リプルと読む。Read-Eval-Print-Loopの略)の仕組み。

 コンパイルをする必要がなく、1行毎に実行可能なため動作確認や調査がちょっと便利になりそう。

 Javaを知らないけど他の言語を知っている人だとお試しでサクッと動かせるから便利かも。

 開発環境が必要ないので、開発環境自体の操作に不慣れな人でもJavaのコーディングを体感できる。

 (入門用に最適かも)

 大規模なコードの一部のみ実行するときに役立つかもしれない。

 jshellでは文末のセミコロンは不要らしい。

 jshell上でもMapが使える。新機能で新機能を試すことができるからちょっと楽しいかもしれない。

※全体的に感じたこと

 jshellやMapやその他もろもろなどの実装により若干使いやすくなったので

 開発者の負担が減るかもしれないバージョンアップでは?と思った。

 ただし完全新規のプロジェクトなどでしか使われないかも・・・?

以上