class Aliphatic<F> extends Organic<F>{}
class Hexane<G> extends Aliphatic<G>{}
public class Organic<E>{
void react(E e){}
static void main(String[] args){
Organic<? extends Organic> compound = new Aliphatic<Organic>();
compound.react(new Organic());
}
}
爲什麼我不能用有機參數調用react方法? 參考<? extends Organic>
的泛型類型說實例化的泛型類型可以是有機的,也可以是有機的子類型。運行時已知的通用上界通配符實例化
是因爲編譯器不知道這個實例泛型類型,直到運行時鍵入一個所以它沒有綁定任何值到它的泛型標準?
這種情況爲什麼會起作用?這種情況是否一樣?
public class WildcardCollection {
public static void main (String[] args){
WildcardCollection w = new WildcardCollection();
w.myMethod(new Items("hola",1)); //Compile
w.myMethod(new SubItems("nuevo",3)); //Compile
}
public <T extends Items> void myMethod(T a){ //Same as above
System.out.println("hi: "+a);
}
}
class SubItems extends Items {
SubItems(){};
SubItems(String s, int i){ super(s,i);}
}
class Items implements Comparable<Items> {
private String name;
private int value;
public Items() {}
public Items(String n, int i){ this.name = n; this.value = i;}
public String getName(){ return this.name;}
public int getValue(){ return this.value;}
public String toString(){ return "(" + this.name + "-" + this.value + ")";}
public int compareTo(Items i){
return this.value - i.getValue();
}
}
相關:http://stackoverflow.com/questions/1292109/generics-get-and-put-rule –
而另一個插件對於HTTP:// WWW。 angelikalanger.com/Generi csFAQ/JavaGenericsFAQ.html - 我從來沒有發現有關泛型的問題,無法通過引用該網站來回答。 –