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

Add objects to Arraylist and use it outside method

我有一个问题。我无法解决它,我需要一些帮助。我有一个对象的 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() 方法时它 returns 0,看起来当 addPackage 方法完成时它会删除我添加到 Arraylist 的对象。 注意:我的 addPackage 方法将 return 加倍总数,但同时将我创建的对象添加到数组列表中。我需要一些帮助。

我试过你的代码,几乎是正确的。我再次发布我使用过的有效的 classes:

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

现在 class 包是:

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

    }

正如预期的那样 returns 2。所有这些 class 可能与您所拥有的不完全相同,但它会让您了解您缺少什么。