JetBrainsは、Java 16のフルサポートを備えたIntelliJ IDEA 2021.1 EAP 1をリリースした。注目すべき特徴としては他に、Windows Subsystems for Linux(WSL) 2のサポート、HTMLファイルをプレビューするための組み込みブラウザ、プロファイリングサポートの改善などがある。Docker、SSL、WSL経由でのアプリケーションの実行も可能になる。
IntelliJ IDEA 2021.1 EAPは、2021.1に向けた最初の早期アクセスプログラム(EAP)である。GAのリリースは2021年3月に予定されている。EAPは、JavaコミュニティがIntelliJ IDEAの新機能をテストし、フィードバックを提供するためのものだ。従って、GAがリリースされるまでに、これらの機能はさらに改善される可能性がある。
今回のEAPは、同じく2021年3月リリースにリリース予定のJava 16をサポートする。Java 16の新機能のひとつとして、内部クラスに静的メンバを含めることが可能になる、というものがある。今回のEAPリリースでは、この機能がサポートされている。
public class OuterClass {
class InnerClass {
static final String STATIC_MESSAGE = new String("Works in Java 16");
static String staticMethod() {
return STATIC_MESSAGE;
}
}
}
言語レベルには"16" — Record、パターン、ローカル列挙型およびインターフェースか、または"16(Preview)" — Sealed型を、"File"、"Project Structure"、"Modules"のいずれかに指定することができる。
従来は、ストリームからリストを取得するための一般的な方法としてstream.collect(Collectors.toList())
と記述していたが、Java 16ではもっと簡潔に、stream.toList()
と記述することが可能になる。
IntelliJ IDEAは、Java 16の新しいtoList()
メソッドをサポートしており、Stream
インターフェースのインスタンスでは、コード補完の最初にそれを表示する。
リストの取得を古い方法から新しい方法に置き換えることも可能だが、stream.collect(Collectors.toList())
の呼び出しが変更可能(mutable)なリストを返すのに対して、stream.toList()
が返すのは変更不能(immutable)なリストである点に注意が必要だ。既存のコードが変更可能なリストを期待している場合、stream.toList()
をそのまま置き換えに使用することはできない。
今回のリリースでは初めて、WSL 2がサポートされている。IntelliJ IDEAがWSL 2内にインストールされているJDKを検出し、必要ならばJDKをダウンロードしてインストールすることが可能になった。JDKがインストールされれば、IntelliJのビルドシステムによるコードのコンパイルと実行が可能になる。今後のEAPビルドでは、WSL 2内のMavenとGradleもサポートされる予定だ。
今回のリリースには、HTMLファイルをプレビューする組み込みブラウザが新たに含まれている。プレビューブラウザには、エディタの右上のウィジェットにある、IntelliJ IEADのロゴをクリックすることでアクセスできる。プレビューモードを有効にした後は、HTMLやCSS、JavaScriptコードの修正が組み込みブラウザに即時表示されるようになる。
"Run Targets"は、アプリケーションをターゲット上で実行、テスト、デバッグすることの可能な、もうひとつの新機能である。アプリケーションの実行ターゲットとしては、Docker、SSH、WSLがサポートされている。Run Targetを使うことで、これらのターゲットのひとつでJavaアプリケーション、JUnitテスト、Mavenを実行することが可能になる。
プロファイラは実行中のアプリケーションを、そのPIDやCPU消費量とともに表示する。アプリケーションの名前をクリックすれば、CPU Profiler、Allocation Profiler、Java Flight Recorderのいずれかひとつにアタッチすることができる。右クリックでは、2つの新たなアクションが実行可能になった。"Capture Memory Snapshot"では、実行中のアプリケーションの*.hprof
スナップショットを生成して、パフォーマンス上の問題を特定することができる。"CPU and Memory Live Charts"は、アプリケーションのCPUおよびメモリ消費量をライブで可視化する。
今回のリリースでは、Mavenプロジェクトのインポート中に設定を変更するオプションが復活した。この機能を利用するには、メニュー"File | New Projects Settings | Preferences for new Projects | Build, Execution, Deployment | Build Tools | Maven"を実行し、"Show settings dialog for new Maven projects"を選択する。
プロジェクト内の文字列を探す場合などにおいて、検索スコープに含める外部依存関係をフィルタリングすることが可能になった。これを有効にするには、メニュー"Edit | Find | Find in Files | Scope"とナビゲートし、"..."をクリックして表示されるScopeダイアログボックスで、外部依存関係の選択ないし除外を指定すればよい。
統合チームソリューションのJetBrains Spaceでは、さまざまな機能と合わせてGitリポジトリを提供している。Spaceプラグインが標準でロードされるようになり、IntelliJ IDEAとJetBrains Spcaeとの統合が容易になった。このプラグインでは、Gitリポジトリへのログイン、作業、コードのレビューなどが、IDEを介さずに実行できるようになる。新たなコードをリポジトリにコミットする前に、コードインスペクションプロファイルを使用することも可能だ。