1
的給定類型:什麼爲T
public static <T> void copy(List<? super T> dest, List<? extends T> src)
我看到這個頁面: Confusion over Java generic method type inference
但我仍然困惑,dasblinkenlight說,只要對象傳遞中是一致的,然後代碼應該編譯。
這是否意味着第一個參數類型將有助於確定第二個有效的 ?
public class Hello {
public static void main(String[] args){
ArrayList<Animal> dogs = new ArrayList<>();
ArrayList<Marly> marlies = new ArrayList<>();
copy(dogs,marlies);
}
public static <T> void copy(List<? super T> dest, List<? extends T> src{
}
}
class Animal{}
class Dog extends Animal { }
class Beagle extends Dog { }
class Marly extends Beagle{ }
幾乎所有可能的方法我都圍繞它編譯,只要首先是在繼承層次更高的這兩個列表改變。
有人可以幫助解釋遠一點
沒有這個職位澄清一點? https://stackoverflow.com/questions/1368166/what-is-a-difference-between-super-e-and-extends-e – csunday95
明白了。所以我認爲在這樣的情況下確實沒有T,並且真正重要的是方法體中會發生什麼以及如何將這些類相互關聯是正確的。 – madmax