Java 如何将新对象添加到ArrayList?
我正在尝试向ArrayList添加一个新对象。每个项目对象将有3个属性: itemNum 信息 费用 我还有3门课: Item类定义存储在目录中的单个项。 Catalog类维护项目对象的列表。 客户端类w/main方法。 我在Item类中有集合和get,在Catalog中有ArrayList。在客户端中,我可以选择添加、删除或编辑对象。如何正确地向ArrayList添加新的Item对象 我可以很好地编译Item类,但是Catalog和Client类没有编译。下面是我在Catalog类中遇到的错误:Java 如何将新对象添加到ArrayList?,java,object,arraylist,add,Java,Object,Arraylist,Add,我正在尝试向ArrayList添加一个新对象。每个项目对象将有3个属性: itemNum 信息 费用 我还有3门课: Item类定义存储在目录中的单个项。 Catalog类维护项目对象的列表。 客户端类w/main方法。 我在Item类中有集合和get,在Catalog中有ArrayList。在客户端中,我可以选择添加、删除或编辑对象。如何正确地向ArrayList添加新的Item对象 我可以很好地编译Item类,但是Catalog和Client类没有编译。下面是我在Catalog类中遇到的错误
Catalog.java:35: error: no suitable method found for add(int,String,double)listOfObjects.add(newItemId, newDescription, newCost);
method ArrayList.add(int,Item) is not applicable
(actual and formal argument lists differ in length)
method ArrayList.add(Item) is not applicable
(actual and formal argument lists differ in length)
下面是Item类的代码
Public class Item
{
private int itemNum;
private String info;
private double cost;
public Item()
{ //start constructor
itemNum = 0; //default values
info = "x";
cost = 0;
} //end constructor
public CatalogItem(int newItemNum, String newInfo, double newCost)
{ //start overload constructor
this.itemNum = newItemNum;
this.info = newInfo;
this.cost = newCost;
} //end overload constructor
下面是itemNum的设置/获取
public int getItemNum()
{ //start itemNum accessor
return itemNum;
} //end getItemNum
public void setItemNum(int newItemNum)
{ //start itemNum mutator
this.itemNum = newItemNum;
} //end setItemNum
} //end Item class
//下面是我的目录课
import java.util.*;
public class Catalog
{ //start class
private ArrayList<CatalogItem> listOfObjects = new ArrayList<CatalogItem>(100); //creates ArrayList
Item newItem = new Item(newItemNum, newInfo, newCost); //instantiates Item class
/*
public Catalog()
{ //start constructor
} //end constructor
*/
public void add(CatalogItem newItem) //method adds a new Item object to the array list
{ //start add
listOfObjects.add(newItem);
} //end add
public void add(int itemNum, String info, double cost) //accepts parameters from main method to add to new object
{ //start add
int newItemNum = itemNum;
String newInfo = info;
double newCost = cost;
newItem.setItemNum(newItemNum);
newItem.setInfo(newInfo);
newItem.setCost(newCost);
listOfObjects.add(newItemNum, newInfo, newCost);
} //end add
} //end class
任何帮助都将不胜感激 您有一些错误 在类目录中,此行不正确:
listOfObjects.add(newItemNum, newInfo, newCost); //adds the object to the ArrayList
你必须做到:
CatalogItem cat = new CatalogItem(newItemNum, newInfo, newCost);
listOfObjects.add(cat); //adds the object to the ArrayList
在类客户机中,您没有对newItem或ListofObject的引用,所以不能在该类中使用它们。如果要从客户端的main方法向ListofObject添加元素,可以执行以下操作:
public class Client {
public static void main(String[] args) { //start main
Catalog serv = new Catalog();
......
serv.add(1, "", 1.0d);
}
}
你有一些错误 在类目录中,此行不正确:
listOfObjects.add(newItemNum, newInfo, newCost); //adds the object to the ArrayList
你必须做到:
CatalogItem cat = new CatalogItem(newItemNum, newInfo, newCost);
listOfObjects.add(cat); //adds the object to the ArrayList
在类客户机中,您没有对newItem或ListofObject的引用,所以不能在该类中使用它们。如果要从客户端的main方法向ListofObject添加元素,可以执行以下操作:
public class Client {
public static void main(String[] args) { //start main
Catalog serv = new Catalog();
......
serv.add(1, "", 1.0d);
}
}
您正在使用构造函数newItemNewItemNum、newInfo、newCost创建项;但是我看不到。您正在使用构造函数newItemNewItemNum、newInfo、newCost创建项;但我看不见。