当我尝试添加到我的数组列表(stringer)时,会发生以下错误:
error: no suitable method found for add(Fish)
stringer.add(f);
在此代码中:
public class Habitat {
ArrayList<String> stringer = new ArrayList<String>();
int[] fishArr;
public int maxCount=25;
public int minCount=9;
public int maxWeight=10;
public int minWeight=1;
public int catchProbability=30; //0.3
public int[] stockUp(){
int numofF = minCount + (int)(Math.random() * ((maxCount - minCount) + 1));
for(int i = 0; i<numofF; i++){
fishArr[i] = minWeight + (int)(Math.random() * ((maxWeight - minWeight) + 1));
}
return fishArr;
}
public Habitat(){
int[] hab;
}
public void addFish(Fish f) {
stringer.add(f);
}
public void removeFish(Fish f){
stringer.remove(f);
}
public void printFish(){
System.out.println(stringer);
}
}
删除工作正常,所以我不明白为什么添加不起作用。我想解释这个问题,所以我不会再犯同样的错误。
答案 0 :(得分:4)
您已宣布List
,因此它只期待String
个值,但您正在尝试向其添加Fish
个对象...
这违反了您使用ArrayList
尝试使用ArrayList<Fish> stringer = new ArrayList<Fish>();
代替
请查看Generics了解详情
答案 1 :(得分:0)
stringer是String的ArrayList,你不能添加类型为Fish的对象。