2013-11-04 49 views
0

當編寫一個亞型超型關係需要兩個對象,有兩個類型參數的方法,什麼是宣佈你的意圖了這些選項的最好方法是什麼?正確的方式來聲明一個方法,在繼承層次中兩個類型參數

  1. 同時聲明superextends

    public static <T> void copy(List<? super T> dst, List<? extends T> src) { ... } 
    
  2. 申報只是extends

    public static <T> void copy(List<T> dst, List<? extends T> src) { ... } 
    
  3. 申報只是super

    public static <T> void copy(List<? super T> dst, List<T> src) { ... } 
    

從我的理解,這三個是正確的,等同於對方,因爲所有你感興趣的是的dstsrc類型參數的相對繼承。那哪個更好?

+0

哪一種你認爲是更簡單,更容易理解? –

+0

就像你說的「繼承實例」那樣使用2種方式來聲明。 – 2013-11-04 10:51:29

+0

爲什麼這比指定一個'extends'或'super'更好? – thecoop

回答

1

我想延伸爲最常見,如果沒有必要同時使用你不應該。所以我只會繼續使用擴展。

所以還沒有一個正確的方法,除非你有一個約定,指定它。

相關問題