-1
我正在學習java中的泛型。如下所述,我對2個樣本有點困惑。樣品之一是提到的兩個示例泛型有什麼區別?
public class TrickyName <X extends Object>{
private X x;
public TrickyName(X x) {
this.x = x;
}
private double getDouble() {
return x.doubleValue();
}
public static void main(String args[]) {
TrickyName<Integer> a = new TrickyName<Integer>(new Integer(1));
System.out.print(a.getDouble());
}
}
樣品2
public class TrickyName <X extends Number>{
private X x;
public TrickyName(X x) {
this.x = x;
}
private double getDouble() {
return x.doubleValue();
}
public static void main(String args[]) {
TrickyName<Integer> a = new TrickyName<Integer>(new Integer(1));
System.out.print(a.getDouble());
}
}
提到樣品中,存在僅僅是一個延伸class.In第一樣品,我從Number延伸的第二樣品中的延伸對象差。我所理解的是X擴展對象意味着任何擴展對象(因爲每個類擴展對象)都可以這樣使用,所以在這裏使用Integer類,在第一個示例中使用getDouble()給出編譯錯誤,但是當我如前所述從Number類擴展在第二個樣本中起作用。爲什麼? Number類和整數類都從Object擴展。我錯了,請指導我。
啊......現在明白了......感謝您的迴應。 –