<? extends T>和<? super T>应该怎么用?

 

If your parameter is a producer, it should be <? extends T>, if it's a consumer it has to be <? super T>

即,做生产者的方法的参数用extends,消费者的方法的参数用super。

 

为什么?生产数据的类型必定要有一个最根源的父类型T,使得传给消费者时候知道最少情况的属性和方法。而消费者消费数据时,数据至少需要有类型T的属性和方法。

 

做个可能不太恰当的比方,可能如果你了解数学中的上确界和下确界,马上就会明白了。

 

这里翻译一下:

<? extends T> 为 T的某个子类型 的 类

<? super T> 为 T的某种超类 的 类

 

相关文章:

  • 2022-12-23
  • 2021-10-01
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-13
猜你喜欢
  • 2022-12-23
  • 2021-06-18
  • 2022-01-24
  • 2022-12-23
  • 2021-08-01
  • 2021-04-01
相关资源
相似解决方案