JetBrainsは、Java 16のサポート、HTMLの変更を即座にレンダリングする新しいプレビュー機能、およびWindows Subsystem for Linux (WSL) 2のサポートを特徴とするIntelliJ IDEA 2021.1をリリースした。Docker、WSL 2、またはSSH経由でアプリケーションを実行することもできる。その他Docker、Kubernetes、Kotlin、Gitなどのサポートのさまざまな改善が含まれる。
IntelliJでサポートされる新しいJava 16機能の1つは、内部クラス内で静的メンバを宣言する機能だ:
public class OuterClass {
class InnerClass {
static final String STATIC_MESSAGE = new String("Works in Java 16");
static String staticMethod() {
return STATIC_MESSAGE;
}
}
}
従来のJava Beanクラスファイルは、Javaのレコードに変換できる場合がある。これは、すべてのフィールドが final
として宣言されているときに自動的に可能だ。たとえば、以下に示す Student
クラスは、クラス名で ALT-Enter を押下し、Convert to a record を選択することで record に変換される。
public class Student {
private final String firstName;
public Student(String firstName) {
this.firstName = firstName;
}
public String firstName() {
return firstName;
}
}
public record Student(String firstName) {
}
レコードには、Student
クラスで見られる firstName()
メソッドなどの明示的なgetterメソッドはない。ただし、クラスに getFirstName()
などのgetterメソッドが含まれている場合、生成される record にも getFirstName()
メソッドが含まれる。
レコードに変換される可能性のあるすべての適格なクラスを検索することもできる。レコードが必要な機能を提供していない場合は、record から class への変換を使用できる。
instanceof
演算子のパターンマッチングは、常に2ステップのプロセスだった。まず、instanceof
を使って引数が正しい型であるかどうかを確認し、次に、オブジェクトをその特定の型にキャストしていた。Java 16のパターンマッチングによりキャストが不要になり、IntelliJは古いパターンマッチングスタイルを置き換えてキャストを削除できる。
IntelliJ IDEAは、新しいJava 16 toList()
メソッドをサポートし、Stream
インターフェイスのインスタンスのコード補完時に最初に表示する。
配列や条件が負のサイズの場合は常に警告が表示されるようになった。ClassCastException
がスローされる可能性を回避するために、Collection.toArray()
メソッドが誤って使用されると、別の警告が表示される。
次の図に示すように、IntelliJアイコンをクリックすると、新しいHTMLプレビュー機能を開くことができる。HTML、CSS、JavaScriptへの変更は、プレビューウィンドウにすぐに表示される。
Run Targetsは、ターゲット上でアプリケーションを実行、テスト、およびデバッグ機能を提供するIntelliJ IDEA Ultimateの機能だ。Run Targets を使用すると、Javaアプリケーション、JUnitテスト、Maven、Gradle、Micronaut、Spring Boot、Quarkus (Mavenベース) プロジェクトをDocker、SSHやWSLで実行できる。
IntelliJ IDEAは、WSL 2にインストールされているJDKを検出し、必要な場合は、JDKをダウンロードしてインストールできるようになった。インストールされると、WSL 2内のJavaプロジェクトは、IntelliJ IDEAビルドシステムによってコンパイルおよび実行できる。IntelliJは、WSL 2ディレクトリ \\wsl$
にあるMavenまたはGradleアプリケーションが使用できる。
カスタムGitコミットテンプレートをカスタムメッセージ用に作成できる。Run inspectionsは、コミットする前にコードを分析できる。ファイルを選択して下矢印をクリックし Compare with branch オプションを使用して、あるブランチから別のブランチにコピーできる。
GoessnerまたはJayway構文のJSONPath式がサポートされ、Edit | Find | Evaluate JSONPath Expression でテストできるようになった。JSONPath式を選択し、Alt+Enter を押下して、JSONPath式を評価できる。この新しいリリースでは、.jsonl
、.jslines
、.ldjson
、.ndjson
などの区切られたJSONファイルもサポートされている。
IntelliJの構成ウィンドウとDockerfileのイメージ名でコード補完を導入しDockerの使いやすさが改善されている。コンテナはDockerfileに基づいて開始でき、Stop Deploy をクリックして停止することもできるようになった。
マルチステージのDockerfileでは、それぞれのステージのみを構築するハンマーアイコンが表示される。Run/Debug 構成に Run セクションを追加すると、アイコンが変わり、イメージが作成され、コンテナが実行される。
Kubernetesリソースは、構成ファイルを開いて Run アイコンをクリックして削除できる。KubernetesのGoogleのテンプレートフリーYAMLユーティリティである kustomize
は、バージョン 3.7.0でコンポーネントを導入し、Settings/Preference | Languages & Frameworks | Kubernetes から使いたいバージョンの構成で、IntelliJで使用できる。
Kotlinのコード分析スピードとコード補完が改善された。不適切なブロッキングメソッド呼び出しに関する警告が導入され、Kotlinの言語インジェクション機能の問題も修正された。
HTTPクライアントのUXとUIが更新され、レスポンスの残りがないレスポンス本文をコピーするオプションが追加された。クライアント認証のSSLサポートは、Add environment file、Private の順にクリックして利用できるようになった。
その他の新しい機能は次のとおり:
- チェーンメソッド呼び出しのフォーマット規則は、Settings | Editor | Code Style | Java | Wrapping and Braces | Chained method calls で設定できる。
- 新しいsave to shelf アクションは、ユーザの変更をシェルフに保存すると同時に、ローカルの変更でも保持する。
- Windowsでは、IntelliJ IDEAアイコンを右クリックして最近のプロジェクトを開くことができる。
これらすべての新機能の詳細については、IntelliJ IDEA 2021.1ページの what’s new セクションをご覧ください。
2001年1月に最初に発売されたIntelliJ IDEAは、400万人を超える開発者によって世界中で使用されている。JetBrainsは先頃20周年を祝い、過去20年間のすべてのハイライトを振り返った。