gpt4 book ai didi

java - 一个列表如何在 java 中包含不同的类型?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:06:55 24 4
gpt4 key购买 nike

我正在学习 Java 泛型和通配符,我知道对于 List<>,我们始终只允许在它包含的所有元素中使用一种类型。但是,当我这样写代码时(可能被称为生产者扩展和消费者 super ?),我创建的列表中允许存在多种类型!

我是否误解了术语类型安全?实际上,我发现我很困惑为什么我必须执行 producer-extend 和 consumer-super

public static void wildcard(List<? super Integer> list) {
list.add(1);
}

public static void main(String[] args) {
List<Object> list = new ArrayList<>();
list.add("String");
wildcard(list);

System.out.println(list);
}

[String, 1]

最佳答案

当然,这没什么特别的。你有一个 List<Object> .你可以写

Object a = "String";
Object b = 1;

...演示 Object可以是 StringInteger , 就像 List可以是 ArrayListLinkedList . List<Object>可以容纳各种物体。使用 List<Object>本质上是告诉编译器它可以包含任何类型的对象,并且您愿意接受相关的类型安全问题。

关于java - 一个列表如何在 java 中包含不同的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35324133/

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