gpt4 book ai didi

java - "? extends E"和 "T extends E"有什么区别?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:48:24 40 4
gpt4 key购买 nike

我是 Java 的新手,正在尝试从 Java 泛型和集合一书中理解以下奇怪的语法。(我​​广泛使用 C++ 模板,因此可以声称了解泛型编程的基础知识和可能的陷阱):

interface Collection <E> {
...
public boolean addAll(Collection<? extends E> c);
...
}

为什么上面不能写成:

interface Collection <E> {
...
public boolean addAll(Collection<T extends E> c);
...
}

有什么区别?仅仅是语言限制还是背后有什么区别?

最佳答案

可以写成

 public <T extends E> boolean addAll(Collection<T> c)

但是没有意义。无需为该参数命名。

关于java - "? extends E"和 "T extends E"有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14943181/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com