添加到阵列列表

时间:2014-02-24 02:43:18

标签: java methods arraylist

当我尝试添加到我的数组列表(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);
}
}

删除工作正常,所以我不明白为什么添加不起作用。我想解释这个问题,所以我不会再犯同样的错误。

2 个答案:

答案 0 :(得分:4)

您已宣布List,因此它只期待String个值,但您正在尝试向其添加Fish个对象...

这违反了您使用ArrayList

签订的合同

尝试使用ArrayList<Fish> stringer = new ArrayList<Fish>();代替

请查看Generics了解详情

答案 1 :(得分:0)

stringer是String的ArrayList,你不能添加类型为Fish的对象。