javac
- Java™ プログラミング言語コンパイラ分野: コンパイラ
概要: Java 7 コンパイラでは、配列初期化子式に含まれるダイヤモンド演算子が誤って受け入れられました。たとえば、次のコードはこれまで受け入れられていましたが、今後は正しく拒否されます。
class Foo<X> {} class Test { Foo<String>[] fooArr = new Foo<>[]{ }; //error }
7057297 を参照してください。
分野: コンパイラ
概要: Java 7 コンパイラでは、もっとも特異的なアルゴリズム実装のバグにより、次のプログラムが誤って受け入れられていました。
import java.util.*; interface A {List<Number> getList();} interface B {ArrayList getList();} interface AB extends A, B {} class Test { void test(AB ab) { Number n = ab.getList().get(1); } }
JDK 6 では、このプログラムは失敗していました。Java SE 7u2 では、このプログラムを正しく拒否するための修正が行われました。7062745 を参照してください。