簡體   English   中英

在繼承層次結構中聲明帶有兩個類型參數的方法的正確方法

[英]Correct way to declare a method with two type parameters in inheritance hierarchy

在編寫采用兩個對象且在子類型-超類型關系中具有兩個類型參數的方法時,從這些選項中聲明意圖的最佳方法是什么?

  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類型參數的相對繼承。 那么哪個更好呢?

我認為擴展是最常見的方法,如果不需要使用兩者,則不應該使用。 因此,我只會使用擴展。

因此,除非您有指定它的約定,否則沒有正確的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM