gpt4 book ai didi

java - 创建未知对象的集合

转载 作者:行者123 更新时间:2023-12-02 04:32:57 25 4
gpt4 key购买 nike

我有一个简单的问题:是否有更好的方法来创建包含任何类型对象的集合。我有这样的:

Queue<Object> queue = new LinkedList<Object>();
queue.add("First Element");
queue.add(2);
queue.add(true);

当我阅读有关通用通配符的内容时,我想我可以做这样的事情:

Queue<?> queue = new LinkedList<?>();

但我意识到这是错误的,所以我问我的程序是否正确,以及如果可能的话如何使用通配符改进它。

感谢大家的意见。详细说明:我想使用这个队列集合来存储未知数量的未知对象,然后在循环中对每个对象执行一个操作。因此,我遇到了一个困境:创建这样一个集合的最佳实践是什么。

最佳答案

您所拥有的似乎不太好,尽管这可能表明您可能需要单独的类,而不是集合,以便将数据存储为字段。

无论如何,你不需要通配符 <?> 。只能作为引用,比如

Queue<?> queue = ...

它代表某种您不知道(或暂时不关心)的特定类型。您不想使用它,因为它不允许您 add收集任何东西,因为您可以尝试放置 Cat Collection Dogs

例如:

List<Dog> dogs = new List<Dog>();
List<?> someList = dogs; // it is OK, thanks to ? someList can be reference to List<Dog>
someList.add(new Cat()); // this would be wrong because Cat is not a Dog,
// and probably shouldn't be placed in container
// where you have lots of Dogs.

关于java - 创建未知对象的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31219694/

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