1 Java言語の変更

この項では、Java SE 9以降のリリースで更新された言語機能の概要を示します。

Java SE 14のJava言語の変更

Java SE 14では、instanceof演算子にパターン・マッチングが導入されています。instanceof演算子の結果がtrueの場合、テスト対象のオブジェクトは、前に宣言されている変数に自動的に割り当てられます。「instanceof演算子のパターン・マッチング」を参照してください。このリリースでは、プレーン・データ・キャリア(変更されないデータ、およびコンストラクタやアクセサなどの最も基本的なメソッドのみを含むクラス)に最適な新しい種類の型宣言であるrecordも導入されています。「record」を参照してください。

テキスト・ブロックには、この他2つのエスケープ・シーケンス(テキスト・ブロック・プログラマーズ・ガイドを参照)を使用でき、Switch式は永続的な言語機能になりました。

Java SE 13のJava言語の変更

Java SE 13では、共通のエスケープ・シーケンスを必要としない複数行文字列リテラルであるテキスト・ブロックが導入されています。テキスト・ブロック・プログラマーズ・ガイドを参照してください。また、switch式にも変更が1つ導入されています。式の値の指定には、break文ではなく、新しいyield文を使用します。『Java Platform, Standard Edition Java言語更新リリース13』「Switch式」を参照してください。

Java SE 12のJava言語の変更

Java SE 12では、switch式に加え、フォール・スルーを防ぐ新しい種類のcaseラベルが導入されています。これはプレビュー機能として使用できます。『Java Platform, Standard Edition Java言語更新, リリース12』Switch式に関する項を参照してください。

Java SE 11のJava言語の変更

Java SE 11では、暗黙的に型指定されるラムダ式の仮パラメータをvar識別子で宣言できます(「ローカル変数の型推論」を参照)。

Java SE 10のJava言語の変更

Java SE 10では、コンテキストからローカル変数の型を推論するためのサポートが導入され、これにより、コードの可読性が向上し、必要なボイラープレート・コードの量が削減されます。

Java SE 9のJava言語の変更

Java Platform, Standard Edition (Java SE) 9の大きな変更点は、Java Platformモジュール・システムの導入です。

Java Platformモジュール・システムでは、モジュールという新しい種類のJavaプログラミング・コンポーネントが導入されています。モジュールは名前付きで自己記述型のコードとデータのコレクションです。タイプ(Javaのクラスとインタフェース)を含むパッケージのセットとしてコードが編成されており、リソースおよび他の種類の静的情報がデータに含まれます。モジュールはパッケージをエクスポートまたはカプセル化でき、他のモジュールに対する依存関係を明示的に表現できます。

Java Platformモジュール・システムの詳細は、OpenJDKのProject Jigsawに関する項を参照してください。

新しいモジュール・システムとは別に、Java言語にいくつかの変更が加えられました。さらに簡潔になったtry-with-resources文およびJava SE 9の言語の軽微な変更に関する項を参照してください。