1 Java言語の変更のサマリー

次の表に、Java SE 9以降の新しいJava言語機能の概要を示します。

言語の新機能

次の表に、Java SE 9以降のJava言語の新機能を示します。

表1-1 Java言語の変更のサマリー

リリース 言語の新機能

9

Javaプラットフォーム・モジュール・システム(JSR 376): OpenJDKのProject Jigsawを参照してください

Milling Project Coin (JEP 213): Java SE 9のJava言語の変更を参照してください

Javaプログラミング言語の小規模な拡張機能(JSR 334): Java SE 9のJava言語の変更を参照してください

10

ローカル変数の型推論 (JEP 286)

11

ラムダ・パラメータのローカル変数構文(JEP 323): ローカル変数の型推論を参照してください

14

switch式および文 (JEP 361)

15

テキスト・ブロック (JEP 378)

16

レコード・クラス (JEP 395)

instanceofによるパターン・マッチング (JEP 394)

17

シール・クラス (JEP 409)

21

レコード・パターン (JEP 440)

switchによるパターン・マッチング (JEP 441)

22

無名変数およびパターン (JEP 456)

25

モジュール・インポート宣言(JEP 511)

コンパクトなソース・ファイルおよびインスタンスのmainメソッド(JEP 512)

柔軟なコンストラクタ本体(JEP 513)

永続的およびプレビュー言語機能

次の表に、Java SE 9以降のリリースごとに、どの言語機能が永続的になり、どの言語機能がプレビューされていたかを示します。プレビュー機能および永続化の方法の詳細は、プレビュー機能を参照してください。

表1-2 Java言語の変更のサマリー

リリース 永続的な機能 プレビュー機能

25

モジュール・インポート宣言(JEP 511)

コンパクトなソース・ファイルおよびインスタンスのmainメソッド(JEP 512)

柔軟なコンストラクタ本体(JEP 513)

パターン、instanceofおよびswitchでのプリミティブ型(JEP 507): 次を参照してください:

24

 

モジュール・インポート文(JEP 494)

パターン、instanceofおよびswitchでのプリミティブ型(JEP 488): 次を参照してください:

柔軟なコンストラクタ本体(JEP 482)

単純なソース・ファイルおよびインスタンスのMainメソッド(JEP 495)

23

 

モジュール・インポート宣言(JEP 476)

パターン、instanceofおよびswitchでのプリミティブ型(JEP 455): 次を参照してください:

暗黙的に宣言されたクラスおよびインスタンスのmainメソッド(JEP 477)

柔軟なコンストラクタ本体(JEP 482)

22

無名変数およびパターン (JEP 456)

super(...)の前の文(JEP 447)

文字列テンプレート(JEP 459)

暗黙的に宣言されたクラスおよびインスタンスのmainメソッド(JEP 463)

21

レコード・パターン(JEP 440)

switchによるパターン・マッチング (JEP 441)

文字列テンプレート(JEP 430)

無名パターンおよび変数(JEP 443)

無名クラスおよびインスタンスのmainメソッド(JEP 445)

20

 

switch式および文のパターン・マッチング (JEP 433)

レコード・パターン(JEP 432)

19

 

switch式および文のパターン・マッチング (JEP 427)

レコード・パターン(JEP 405)

18

 

switch式および文のパターン・マッチング (JEP 420)

17

シール・クラス(JEP 409)

switch式および文のパターン・マッチング (JEP 406)

16

レコード・クラス (JEP 395)

instanceofによるパターン・マッチング (JEP 394)

シール・クラス(JEP 397)

15

テキスト・ブロック (JEP 378)

シール・クラス(JEP 36)

レコード・クラス(JEP 384)

instanceofのパターン・マッチング (JEP 375)

14

switch式および文 (JEP 361)

instanceof演算子のパターン・マッチング (JEP 305)

レコード(JEP 359)

テキスト・ブロック(JEP 368)

13

 

テキスト・ブロック(JEP 355)。テキスト・ブロックのプログラマーズ・ガイドを参照してください

switch式(JEP 354)

12

 

switch式(JEP 325)

11

ラムダ・パラメータのローカル変数構文(JEP 323): ローカル変数の型推論を参照してください

 

10

ローカル変数の型推論 (JEP 286)

 

9

Javaプラットフォーム・モジュール・システム(JSR 376): OpenJDKのProject Jigsawを参照してください

Milling Project Coin (JEP 213): Java SE 9のJava言語の変更を参照してください

Javaプログラミング言語の小規模な拡張機能(JSR 334): Java SE 9のJava言語の変更を参照してください

 

言語機能の進化

次の表に、Java SE 9以降にJava言語に加えられた変更を示します。最初の列では機能を指定し、後続の列ではJava SEリリースを指定します。アイコンは、機能が永続的になった、指定されたリリースで取り下げられた、またはプレビュー機能として使用可能になったかどうかを指定します。

  • 永続的な機能: 永続的な機能
  • 取下済: 機能は取り下げられました
  • 1番目のプレビュー2番目のプレビュー3番目のプレビュー4番目のプレビュー: それぞれ1番目、2番目、3番目または4番目のプレビュー

プレビュー機能と、永続化または取消しの方法の詳細は、プレビュー機能を参照してください。

表1-4 Java SE 24からJava SE 17へのJava言語の変更

機能 24 23 22 21 20 19 18 17
モジュール・インポート宣言 2番目のプレビュー JEP 494 1番目のプレビュー JEP 476            
パターン、instanceofおよびswitchのプリミティブ型 2番目のプレビュー JEP 488 1番目のプレビュー JEP 455            
柔軟なコンストラクタ本体 3番目のプレビュー JEP 492 2番目のプレビュー JEP 482 1番目のプレビュー JEP 447          
単純なソース・ファイルおよびインスタンスのMainメソッド 4番目のプレビュー JEP 495 3番目のプレビュー JEP 477 2番目のプレビュー JEP 463 1番目のプレビュー JEP 445        
無名変数およびパターン     永続的な機能 JEP 456 1番目のプレビュー JEP 443        
文字列テンプレート   取下済 2番目のプレビュー JEP 459 1番目のプレビュー JEP 430        
レコード・パターン       永続的な機能 JEP 440 2番目のプレビュー JEP 432 1番目のプレビュー JEP 405    
switchによるパターン・マッチング       永続的な機能 JEP 441 4番目のプレビュー JEP 433 3番目のプレビュー JEP 427 2番目のプレビュー JEP 420 1番目のプレビュー JEP 406
シール・クラス               永続的な機能 JEP 409

表1-5 Java SE 16からJava SE 9へのJava言語の変更

機能 16 15 14 13 12 11 10 9
シール・クラス 2番目のプレビュー JEP 397 1番目のプレビュー JEP 360            
レコード・クラス 永続的な機能 JEP 395 2番目のプレビュー JEP 384 1番目のプレビュー JEP 359          
instanceofによるパターン・マッチング 永続的な機能 JEP 394 2番目のプレビュー JEP 375 1番目のプレビュー JEP 305          
テキスト・ブロック   永続的な機能 JEP 378 2番目のプレビュー JEP 368 1番目のプレビュー JEP 355        
switch式および文     永続的な機能 JEP 361 2番目のプレビュー JEP 354 1番目のプレビュー JEP 325      
ラムダ・パラメータのローカル変数構文: ローカル変数の型推論を参照してください           永続的な機能 JEP 323    
ローカル変数の型推論             永続的な機能 JEP 286  
Javaプラットフォーム・モジュール・システム: OpenJDKのProject Jigsawを参照してください               永続的な機能 JSR 376
Milling Project Coin: Java SE 9のJava言語の変更を参照してください               永続的な機能 JEP 213
Javaプログラミング言語の小規模な拡張機能: Java SE 9のJava言語の変更を参照してください               永続的な機能 JSR 334