我一直在通過Java Tutorial,並且已經通過reading about generic type inference in JDK7。推斷的泛型類型和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>("");
在哪個版本的JDK7中起作用? – axtavt 2011-06-01 10:28:55
@axtavt:它不起作用嗎?哦,該死的,我認真地對待它。 – 2011-06-01 10:31:34
我還沒有嘗試JDK7,我推測鑑於它是官方文檔的一部分,它現在或在不久的將來會在某個時刻起作用。 – chattsm 2011-06-01 10:34:46