我遇到了类类型的问题。我有一个超类“Edible”和一个界面“Colorful”。并非所有可食用物品都是彩色的,因此仅在某些可食用物品上实现了彩色。我正在尝试获取可食用物品的 ArrayList,循环遍历它,然后返回一个仅包含彩色物品的新 ArrayList。我现在收到的错误是
“ArrayList 类型中的方法 add(Colorful) 不适用于参数 (Edible)”
我怎样才能绕过这个限制?
private ArrayList<Edible> elist;
private ArrayList<Colorful> clist;
public List<Colorful> getColorfulItems(){
for(Edible x : elist)
if(x instanceof Colorful){
clist.add(x);
}
return clist;
}