0

サブタイプとスーパータイプの関係で 2 つの型パラメーターを使用して 2 つのオブジェクトを受け取るメソッドを作成する場合、これらのオプションから意図を宣言する最良の方法は何ですか?

  1. superと の両方を宣言しextendsます。

    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) { ... }
    

私の理解では、3つすべてが正しく、互いに同等です。興味があるのは、との型引数の相対的な継承だけだからdstですsrc。それで、どれが良いですか?

4

1 に答える 1

1

extends が最も一般的だと思います。両方を使用する必要がない場合は、使用しないでください。したがって、拡張のみを使用します。

したがって、それを指定する規則がない限り、正しい方法はありません。

于 2013-11-04T11:18:55.440 に答える