ヘッダーをスキップ
Java Platform, Standard Edition Java言語更新
リリース9
E90920-01
 

 

Java Platform Standard Edition

Java言語更新

リリース9

E90920-01(原本部品番号:E69138-03)

2017年9月

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文

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以前)を参照してください。

Java SE 9の言語の軽微な変更

Java SE 9には、言語の軽微な変更がいくつかあります。

@SafeVarargsの注釈がプライベート・インスタンスのメソッドで許可されます。

@SafeVarargsの注釈は、オーバーライドできないメソッドのみに適用できます。これらには、静的メソッド、finalインスタンスのメソッド、およびプライベート・インスタンスのメソッド(Java SE 9の新機能)が含まれます。

匿名内部クラスと一緒にダイアモンド構文(山カッコが含まれた構文)を使用できます。

Javaプログラムで記述できる型(intStringなど)は型指定型と呼ばれます。Javaプログラムに記述できないコンパイラ内部の型は非型指定型と呼ばれます。

非型指定型は、ダイアモンド演算子で使用される推論の結果として発生する場合があります。匿名クラスのコンストラクタを指定したダイアモンドを使用する推論型はクラス・ファイルの署名属性の型セット以外になる可能性があるため、匿名クラスが指定されたダイアモンドの使用はJava SE 7では許可されていませんでした。

Java SE 9では、推論型が型指定であるかぎり、匿名内部クラスを作成する際にダイアモンド演算子を使用できます。

アンダースコア文字は有効な名前ではありません。

アンダースコア文字("_")を識別子として使用すると、ソース・コードをコンパイルできなくなります。

プライベート・インタフェースのメソッドがサポートされます。

プライベート・インタフェースのメソッドがサポートされます。このサポートにより、インタフェースの非抽象メソッド間でコードを共有できるようになります。

ドキュメントのアクセシビリティについて

Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracleサポートへのアクセス

サポートを購入したオラクル社のお客様は、My Oracle Supportを介して電子的なサポートにアクセスできます。詳細情報はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=infoか、聴覚に障害のあるお客様はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trsを参照してください。


Java Platform, Standard Edition Java言語更新, リリース9

E90920-01

Copyright © 2017, Oracle and/or its affiliates. All rights reserved.

このガイドでは、Java SE 9の言語の更新について説明します。

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

このソフトウェアまたはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアまたはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用する際、このソフトウェアまたはハードウェアを安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。適用されるお客様とOracle Corporationとの間の契約に別段の定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。適用されるお客様とOracle Corporationとの間の契約に定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。