我有一个问题。我无法解决它,我需要一些帮助。我有一个对象的Arraylist然后我有一个方法创建对象并添加到Arraylist但我想要另一种方法,我可以打印Arraylist但每次我尝试Arraylist是空的所以这是我的代码:
public class Packages{
ArrayList<Pack> myList = new ArrayList<Pack>();
Pack obj;
public double addPackage(int type, double num){
if(type==1)
{
obj = new Pack(type, num);
total = obj.calculateTotal;
}
else
{
obj = new Pack(type, num);
total = obj.calculateTotal;
}
myList.add(obj);
return total;
}
public int listSize(){
return myList.size();
}
}
每当我调用listSize()方法时,它返回0,看起来当addPackage方法完成时它会删除我添加到我的Arraylist中的对象。 注意:我的addPackage方法将返回double total,但同时将我创建的对象添加到arraylist。我需要一些帮助。
答案 0 :(得分:2)
我尝试了你的代码,它几乎是正确的。我正在再次发布我使用过的类,哪些有效:
public class Package {
List<Pack> myList = new ArrayList<Pack>();
Pack obj;
double total = 0;
public double addPackage(int type, double num) {
if (type == 1) {
obj = new Pack(type, num);
total = obj.calculateTotal();
} else {
obj = new Pack(type, num);
total = obj.calculateTotal();
}
myList.add(obj);
return total;
}
public int listSize() {
return myList.size();
}
}
现在课程包是:
public class Pack {
int type;
double value;
public Pack(int type, double value) {
this.type = type;
this.value = value;
}
public double getValue() {
return value;
}
public void setValue(double value) {
this.value = value;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public double calculateTotal() {
return type*value;
}
}
我在此代码中验证了:
public static void main(String[] args) {
Package pkg = new Package();
pkg.addPackage(10,10);
pkg.addPackage(10,20);
System.out.println(pkg.listSize());
}
正如预期的那样,它会返回2
。所有这些课程可能与你所拥有的课程完全相同,但它会让你了解你缺少什么。