kondoumh のブログ

- とあるソフトウェアエンジニアのめったに更新されないブログ -

IntelliJ IDEA で Java 10 のローカル変数型推論を有効化する

Java 10 がリリースされ、ローカル変数型推論が使えるようになったということで、環境構築してみました。 業務アプリではクラス名が長くなりがちなので、変数の初期化で右辺から型が明確な場合は積極的に使うとコードが簡潔になる効果があります。

JDK は以下のページからダウンロードできます。

Java SE - Downloads | Oracle Technology Network | Oracle

REPL である JShell が標準装備されました。IDE を開かなくても 手軽に API を試せたりするのがいいですね。

f:id:kondoumh:20180329233627p:plain

ローカル変数型推論ちゃんと使えました。JShell では単一ステートメントのセミコロンは省略できますし Java なのに可愛く思えるから不思議です。

IntelliJ IDEA も 2018年最初のメジャーアップデート 2018.1 がリリースされたので、早速更新。

f:id:kondoumh:20180329235350p:plain

File -> Project Structure の Platform Settings -> SDKs で JDK を指定します。macOS の場合は /Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home/ を指定します。

f:id:kondoumh:20180329235715p:plain

Project Settings -> Project の Project SDK: で登録した 10 (java version "10") を選択、Project language level: で 10 - Local variable type inference を選択します。

f:id:kondoumh:20180330000202p:plain

これで、ローカル変数で var を使ったコードがコンパイルできるようになります。

f:id:kondoumh:20180330000321p:plain

(追記)

IntelliJ IDEA 上でも、JShell を使えます。

Tools -> JShell Console...

で起動します。jshell_console_1.snippet にコード片を入力し、⌘ + Return で JShell shell_console_1 に実行結果が出力されます。スニペットウィンドウ上での選択範囲だけを実行させることもできます。

f:id:kondoumh:20180403063009p:plain

コードアシスト機能も発動しますし、JRE で JDK 10 を選択していれば、ローカル変数型推論も有効になります*1

(追記終わり)

Java 界隈も半年ごとのメジャーリリースへとリリースサイクルが変わったり、Java EE が Jakarta EE になったりと色々動き出てきました。プロダクション投入の本命は LTS が適用される Java 11 になると思われます。

Oracle Java SE サポート・ロードマップ

Java 1.2 ぐらいから業務で使ってるけど、もう20年経つんですね。。

*1:スニペットウィンドウではなぜかエラーっぽい表示ですが