有类定义如下
class MyClass<A> {
public <B> MyClass(A a, B b) {
System.out.println(a + ", " + b);
}
}
实例化该类:
MyClass<String> a = new <Integer>MyClass<String>("a", 1);
编译正常。
但是如果这么写
MyClass<String> b = new <Integer>MyClass("a", 1);
编译报错: Type arguments given on a raw method。(JDK6)
这么写
MyClass<String> b = new <Integer>MyClass<>("a", 1);
编译报错:Cannot use diamonds with explicit type parameters for constructor。(JDK8)
这是什么原因呢
翻译软件了解下
构造方法里不能与参数相关的类型推断