サブタイプとスーパータイプの関係で 2 つの型パラメーターを使用して 2 つのオブジェクトを受け取るメソッドを作成する場合、これらのオプションから意図を宣言する最良の方法は何ですか?
super
と の両方を宣言しextends
ます。public static <T> void copy(List<? super T> dst, List<? extends T> src) { ... }
だけを宣言します
extends
。public static <T> void copy(List<T> dst, List<? extends T> src) { ... }
だけを宣言します
super
。public static <T> void copy(List<? super T> dst, List<T> src) { ... }
私の理解では、3つすべてが正しく、互いに同等です。興味があるのは、との型引数の相対的な継承だけだからdst
ですsrc
。それで、どれが良いですか?