java 取上界_Java中的上界通配符 - java

我有两种通用方法来计算List元素的总和。方法的签名是

double method1(List extends Number> list)-在这里我使用通配符。

double sumOfList1(List list)-这是类型参数的名称。

两者之间有什么区别还是功能相同?使用类型参数名称代替通配符有什么优势?

public static double sumOfList(List extends Number> list) {

double s = 0.0;

for (Number n : list)

s += n.doubleValue();

return s;

}

public static double sumOfList1(List list) {

double s = 0.0;

for (Number n : list)

s += n.doubleValue();

return s;

}

谢谢。

参考方案

绝对没有区别,声明U的目的是使您可以使用它:

public static void doSomething(List list, Consumer sink) {

list.forEach(sink::accept)

}

这意味着您不必关心U是什么,但是它必须从Number扩展。您关心的是List包含与Consumer可以接受的类型兼容的类型。

或者,您可以在方法内部使用U声明泛型的新实例:

public static List copy(List list) {

List copy = new ArrayList<>();

copy.addAll(list)

return copy;

}

是的,我知道,有更巧妙的方法可以做到这一点-请把它当作一个说明性的例子

Java中的<>>是什么意思? - java

This question already has answers here: Closed 7 years ago. Possible Duplicate: What does >> and >>> mean in Java?我在一些Java代码中遇到了一些陌生的符号,尽管代码可以正确编译和运行,但对于括号在此代码中的作用却感…List 是List 的子类吗?为什么Java泛型不是隐式多态的? - java

我对Java泛型如何处理继承/多态感到困惑。假设以下层次结构-动物(父母)狗-猫(儿童)因此,假设我有一个方法doSomething(List animals)。根据继承和多态性的所有规则,我假设List是List,而List是List>兼容 - java

我这里没有什么代码int b=3; b=b >> 1; System.out.println(b); 它可以完美工作,但是当我将变量b更改为byte,short,float,double时,它包含错误,但是对于变量int和long来说,它可以完美工作,为什么它不能与其他变量一起工作? 参考方案 位移位运算符(例如>>)与任何整数类型兼…菱形运算符<>是否等于 - java

我在util.TreeSet类中发现,其中一个构造函数正在使用具有空泛型类型的新TreeMap调用另一个构造函数。 public TreeSet(Comparator super E> comparator) { this(new TreeMap<>(comparator)); } new TreeMap<>是什么意思…Java-固定大小的列表与指定初始容量的列表之间的差异 - java

我在理解这一点上遇到了问题。当我们做 List list = Arrays.asList(array); 我们不能在该列表上使用添加,删除之类的方法。我知道Arrays.asList()返回固定大小的列表。我不明白的是,如果我们创建一个具有指定初始容量的列表,例如List list2 = new A…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值