Java 9を試した話
これによりノルマ達成のため、技術的なお話ができます。 misoshiru.hateblo.jp
前もって一つ伝えておきますが、基本的に適当に調べたことをまとめておくブログなので、
時々私の勘違いで間違ったことが書いてあったり、古い情報が混在していたりすると思います。予めご了承ください。
誤った情報で悲しいことになっても責任は負えませんのでよろしくお願いします。
Java 9を試した話
こんばんは。みそスープの人です。
過ぎし日の9月21日、Java SE 9が一般提供されました。
Java 9 is Out!!!!#JDK9 #Java9 #Javahttps://t.co/VE7BI4KPlK pic.twitter.com/kOdNiLJ1ky
— Java (@java) 2017年9月21日
今回の破壊的変更で、30億のデバイスで走るJavaのうち何十億のデバイスが爆発四散するのかはさておき、とりあえず自環境のWindows 10 Pro(Ver1703)にJDK9を導入して色々試してみるまでのお話です。
01. インストールする
こちらからJDK 9をダウンロードします。
Java SE Development Kit 9 - Downloads
その後、いつも通りパスを通します。
Java 9よりディレクトリ名が変わっているのでパスを通す際には注意しましょう。
今までのJavaとはVersion Schemeが異なるので今後も注意が必要です。
詳細はJEP 223: New Version-String Schemeを。
これで無事、パスが通ったので色々試してみましょう。
02. Streamの新機能
StreamにdropWhile, takeWhile, ofNullableが仲間入りしました。
Stream (Java SE 9 & JDK 9 )
新機能 | 概要 |
---|---|
dropWhile | 該当するもの以外を返す |
takeWhile | 該当するもののみ返す |
ofNullable | nullでないもののみ返す |
list.stream().dropWhile(a -> a < 1).forEach(a -> System.out.println(a));
みたいなことができます。
03. JShell
使ってみた。
悪くない感じ。外部ファイルの読み込みやクラスの作成も問題なく可能だそうです。
04. Module
Java 9での目玉と言える機能であるModule System。
classpathで依存ライブラリを解決する、という今までのJavaの仕組みで色々とたいへんだった、モジュールというものをPackageの上の階層として作ってあげることで依存関係が見やすくなったりいろいろと便利だよね,という試みのようです。(解釈が間違ってたらごめんなさい)
モジュールについてはmodule-info.java内に記述、依存するモジュールと外部に提供するものを明記するようです。 また、モジュールを用いる事によって、Java 9では各クラスが『特定のモジュールに対してpublic』『モジュール内でのみpublic』といった事ができるようになるようです。
未だ半分も理解できていないので、そのうち別記事としてちゃんとまとめておきたいと思います。
05. おわりに
下位互換性がないことからもまだしばらくは導入は見送られそうな感じがとてもしますが、
内容を見ていると結構面白いので、将来的にはJava 9が普及したらうれしいなと思います。
List
後は一刻も早くModuleについてきちんと理解しようと思います、はい。
次回はたぶん味噌汁とUnreal Engine 4の話をすると思います。
ではでは。