我一直在阅读Java 教程,并且一直在阅读 JDK7 中的泛型类型推断。
我遇到了以下语法...
class MyClass<X> {
<T> MyClass(T t) {
// ...
}
}
MyClass<Integer> myObject = new <String`> MyClass<>("");
...这有点令人困惑。我了解“钻石”运算符以及如何根据上下文推断泛型类型。
我不确定您为什么要使用菱形运算符来推断传递给构造函数的类型,同时还明确指定类型“String`”?我也不明白为什么涉及反引号!
另外,以下有区别吗?
MyClass<Integer> myObject1 = new <String> MyClass<>(""); // JDK7 only
MyClass<Integer> myObject2 = new MyClass<>(""); // JDK7 only
MyClass<Integer> myObject3 = new <String> MyClass<Integer>("");