java - 添加到数组列表

标签 java methods arraylist

当我尝试添加到数组列表(纵梁)时,出现此错误:

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);
}
}

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

最佳答案

您已声明 List这样它就期待 String仅值,但您试图添加 Fish反对它...

这违反了您与 ArrayList 签订的契约(Contract)

尝试使用ArrayList<Fish> stringer = new ArrayList<Fish>();相反

看看Generics了解更多详情

关于java - 添加到数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21978005/

相关文章:

Java 性能 : arraylength vs iload

java - 是否可以监视(检测、跟踪等)JVM 中基本类型的 I/O Activity ?

c# - C Sharp 表格不断更新?

java - 如何使一个类方法与数组中的另一个类方法一起使用?

python - 将数组值与多维数组中的数组值进行匹配

java - ArrayLists 和子列表

java - 在方法上同时使用 @RequestMapping 和 @ModelAttribute

java - 我如何优化解决这个数学序列的这个类

java - 从父类(super class)或接口(interface)列表中获取子类实例

java 比较列表元素的属性,如 list.contains(..) 但按属性