6
我已經定義了下面的泛型類,但是當我在類對象上使用它時,它不能編譯。構造函數不會接受其他對象Diamond不編譯Java 7
class Pair<T,V> {
T one;
V two;
public Pair(T one, V two) {
this.one = one;
this.two = two;
}
}
public static void main(String[] args) {
String hamza = "Hamza";
Integer soufiane = 0;
Pair<Object,Object> pairOne = new Pair<>(hamza, soufiane);
Pair<Object,Object> pairTwo = new Pair<Object, Object>(soufiane, hamza);
}
錯誤消息:
incompatible types: Pair<String,Integer> cannot be converted to Pair<Object,Object>
爲什麼第一個未編譯和第二編譯?
編輯:它編譯於Java 8
某些東西不編譯並且編譯器不會告訴你_why_它不能編譯是非常罕見的。 – Tom
我在那裏包含錯誤消息!這是菱形符號,它應該編譯,至少據我所知。爲什麼它迫使我包含模板參數是我不明白的。 –
好吧,泛型類型不是多態,因此將'Pair'賦值給'Pair