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

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

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

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

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

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

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

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

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

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

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

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