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