本「Java Generic and Collections」のセクション1.4から、このコードスニペットがあります
class Lists {
public static <T> List<T> toList(T... arr) {
List<T> list = new ArrayList<T>();
for (T elt : arr)
list.add(elt);
return list;
}
}
次に、次のステートメントがあります。
型パラメーターがジェネリック メソッドの呼び出しに渡されると、メソッド宣言と同様に、左側の山かっこ内に表示されます。Java 文法では、型パラメーターは、ドット形式を使用するメソッド呼び出しでのみ使用できる必要があります。メソッド toList がコードを呼び出す同じクラスで定義されている場合でも、次のように短縮することはできません。
List<Integer> ints = <Integer>toList(); // compile-time error
これはパーサーを混乱させるため、違法です。
そのため、コンパイラ時のエラーが発生する理由を理解しようとしています。