gpt4 book ai didi

java - for-集合中的每个子元素,Java

转载 作者:太空宇宙 更新时间:2023-11-04 07:12:09 26 4
gpt4 key购买 nike

for (SubItem i : List<Item>) {
//do something
}

以上构造不起作用。我需要在循环中多次使用 i 变量。我当前的解决方案是在第一行创建一个新的、强制转换的变量。

for (Item i : List<Item>) {
SubItem si = (SubItem) i;
//do something
}

有更好的方法吗?

编辑:列表中的所有项目都是子项目,因此我不必检查instanceOf。本质上我想要的是一种方法,如果我有一个困惑的集合,则可以避免检查类的实例

最佳答案

您无法自动转换为更详细的类型。您可以执行相反的操作:

List<SubItem> subItemList = new ArrayList<SubItem>();
for (Item i : subItemList) {
//do something
}

在您的情况下,您必须手动转换,例如如下所示:

List<Item> itemList = new ArrayList<Item>(); 
List<SubItem> subItemList = (List) itemList;
for (SubItem i : subItemList) {
//do something
}

我所做的转换是故意没有泛型类型的。使用提供的泛型类型( List<SubItem> ),它无法编译。请记住,如果 itemList 中有任何元素,您将在强制转换期间得到 RuntimeException ,就像这样。不会是 SubItem 类型.

关于java - for-集合中的每个子元素,Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20487643/

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