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

据我了解,这三个都是正确的,并且彼此等价,因为您感兴趣的只是dstand类型参数的相对继承src。那么哪个更好呢?

4

1 回答 1

1

我认为extends是最常见的,如果不需要同时使用两者,你​​不应该。所以我只选择扩展。

所以没有正确的方法,除非你有一个指定它的约定。

于 2013-11-04T11:18:55.440 回答