1 Java言語の変更
この項では、Java SE 9以降のリリースで更新された言語機能の概要を示します。
Java SE 11のJava言語の変更
機能 | 説明 | JEP |
---|---|---|
ローカル変数の型推論: スタイル・ガイドラインも参照してください。 |
Java SE 10で導入されました。このリリースでは、暗黙的に型指定されるラムダ式の仮パラメータを宣言するときに ローカル変数の型推論は、初期化子を伴うローカル変数宣言に型推論を拡張します。 |
Java SE 10のJava言語の変更
機能 | 説明 | JEP |
---|---|---|
ローカル変数の型推論: スタイル・ガイドラインも参照してください。 |
このリリースで導入されました。 ローカル変数の型推論は、初期化子を伴うローカル変数宣言に型推論を拡張します。 |
JEP 286: ローカル変数の型推論 |
Java SE 9のJava言語の変更
機能 | 説明 | JEP |
---|---|---|
Javaプラットフォーム・モジュール・システム。OpenJDKのProject Jigsawを参照してください。 |
このリリースで導入されました。 Java Platformモジュール・システムでは、モジュールという新しい種類のJavaプログラミング・コンポーネントが導入されています。モジュールは名前付きで自己記述型のコードとデータのコレクションです。タイプ(Javaのクラスとインタフェース)を含むパッケージのセットとしてコードが編成されており、リソースおよび他の種類の静的情報がデータに含まれます。モジュールはパッケージをエクスポートまたはカプセル化でき、他のモジュールに対する依存関係を明示的に表現できます。 |
|
言語の小さな機能拡張(Project Coin): |
Java SE 7では、Project Coinとして導入されました。これはいくつかの修正で拡張されています。 |
さらに簡潔になったtry-with-resources文
final
としてのリソースがすでにあるか、実質的にfinal
の変数がある場合、新しい変数を宣言せずにその変数をtry-with-resources
文で使用できます。「事実上final」の変数とは、初期化された後に値が変更されることがない変数のことです。
たとえば、次の2つのリソースを宣言したとします。
// A final resource
final Resource resource1 = new Resource("resource1");
// An effectively final resource
Resource resource2 = new Resource("resource2");
Java SE 7または8では、次のように新しい変数を宣言します。
try (Resource r1 = resource1;
Resource r2 = resource2) {
...
}
Java SE 9では、r1
およびr2
を宣言する必要はありません。
// New and improved try-with-resources statement in Java SE 9
try (resource1;
resource2) {
...
}
the try-with-resources文の詳細な説明は、Javaチュートリアル(Java SE 8以前)を参照してください。
プライベート・インスタンス・メソッドで許可される@SafeVarargsの注釈
@SafeVarargs
の注釈がプライベート・インスタンス・メソッドで許可されます。これは、オーバーライドできないメソッドのみに適用できます。これらには、静的メソッド、finalインスタンスのメソッド、およびプライベート・インスタンスのメソッド(Java SE 9の新機能)が含まれます。