我想添加类型为Product的添加不同的arrayLists到orderProcessor。这些不同的arrayLists具有Products类型及其子类的对象。这段代码是好还是有错误?
for(int i = 0; i < genericOrder.size(); i++) {
orderProcessor.add(genericOrder.get(I));
System.out.println(orderProcessor.get(i));
}
此外,稍后我将这些明确地添加到不同类型的不同数组列表中。但是,这些类型仍然是Product的子类型,例如ComputerPart对象。我这样做是为了在不同的列表中有不同的类型。因为我没有得到任何输出,所以我认为它没有工作。是什么导致了我的错误?
for (int i = 1; i < orderProcessor.size(); i++){
computerPart.add((ComputerPart) orderProcessor.get(I));
}
答案 0 :(得分:1)
在你的第二个for循环中你有:
for (int i = 1; i < orderProcessor.size(); i++){
computerPart.add((ComputerPart) orderProcessor.get(I));
}
如果orderProcessor只有1个订单,那么它永远不会被添加到你的coumputerPart arrayList,因为我不会少于orderProcessor.size()。您还可以检查子类的类型,以将它们添加到正确的ArrayList中。像这样(使用int i = 0修复):
for (int i = 0; i < orderProcessor.size(); i++){
if (orderProcessor.elementAt(i) instanceof ComputerPart)
computerPart.add((ComputerPart) orderProcessor.get(I));
}
*(我会对此发表评论,但我没有足够的重复点......)
答案 1 :(得分:0)
for (int i=0 ; i< orderProcessor.size();i++){
if(orderProcessor.get(i) instanceof ComputerPart )
computerPart.add( orderProcessor.get(i));
else;
}
我认为上述内容应该适用于我想要做的事情?