gpt4 book ai didi

java - 为什么我们需要 Java 中的纯

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:20:13 25 4
gpt4 key购买 nike

为什么我们需要纯 <?>在 java ?传递的任何东西都只能用作 Object 吗?所以它和任何转换为​​ Object 的类一样有用(只有 9 种方法可用)

谢谢


我的意思是,如果你有 List< ? > 列表,您只能将项目用作对象。这意味着 list.get(0) 给你的是对象,仅此而已。是的,我也可以在那里存储任何东西,但是它对你有用吗?这就像你有一件好东西,一件昂贵的东西,却把它扔进了垃圾桶。你只能从垃圾桶里得到垃圾。同样,您可以将任何类的任何好对象放入 List,但仅使用 9 个方法从那里获取对象。

最佳答案

无界通配符在两种情况下是一种有用的方法:

  • 如果您编写的方法可以使用 Object 中提供的功能来实现类。

  • 当代码使用不依赖于类型参数的泛型类中的方法时。
    例如,List.size , 或 List.clear .事实上,Class<?>之所以经常使用是因为 Class<T> 中的大多数方法不要依赖T .

例如,参见 Collections.swap 方法:

public static void swap(List<?> list, int i, int j) {
final List l = list;
l.set(i, l.set(j, l.get(i)));
}

知道类型无助于在 List 中交换两个元素,因此使用了无限通配符。你传入一个 List - 任何List - 该方法交换索引元素。无需担心类型参数。

有关详细信息,请参阅:Unbounded Wildcards.

关于java - 为什么我们需要 Java 中的纯 <?>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51447773/

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