繁体   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