将对象添加到Arraylist并在方法外使用它

时间:2015-05-08 14:51:51

标签: java object methods arraylist

我有一个问题。我无法解决它,我需要一些帮助。我有一个对象的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。我需要一些帮助。

1 个答案:

答案 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。所有这些课程可能与你所拥有的课程完全相同,但它会让你了解你缺少什么。