我有一个ArrayList<Item> items和两个继承的类Item,它们是Book和DVD.我在项目列表中添加了一些书籍和一些dvds
items.add(new Book());
items.add(new DVD());
Run Code Online (Sandbox Code Playgroud)
现在我想做一个
public void printAllBooks()
{
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能选择仅打印Item的子类Book?
如果您被迫使用组合列表,您可以使用instanceof它来检查它是否是一本书.
public void printAllBooks()
{
for(Item i : items){
if(i instanceof Book){
System.out.println(i);
}
}
}
Run Code Online (Sandbox Code Playgroud)
但更好的设计可能是拥有单独的书籍和DVD列表