< E extensions Number>之间的区别是什么?和< Number&gt ;? [英] What is the difference between <E extends Number> and <Number>?

查看:90
本文介绍了< E extensions Number>之间的区别是什么?和< Number&gt ;?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这个方法声明有什么区别:

  public static< E extends Number>列表与LT E  - 代替;进程(列表< E>数量){

  public static List< Number> process(List< Number> nums){

您会在哪里使用前者?

解决方案

第一个允许 List c进程 / code>,a 列表< Double> 等等。第二个不是。

泛型在Java中是不变的。它们不像数组那样是协变的。



即在Java中, Double [] 是子类型 Number [] ,但是 List< Double> 不是 List< Number>的子类型。 。然而,列表< Double> 列表< ;?扩展数字>



泛型不变的原因很多,但这也是为什么扩展 super 类型通常是子类型灵活性所必需的。 另见

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆