将项添加到ArrayList“递归”

时间:2016-03-11 18:40:11

标签: java arraylist constructor static add

我有一个静态ArrayList,我只能从一个类(“Sale”)访问。在那个ArrayList中我想添加同一个类的项目。如何从构造函数中添加它们?

我已经这样做了,它不起作用:

public class Sale{
     private static ArrayList<Sale> sales;
     private Buyer buyer;
     private Item item;

     public Sale(Buyer buyer, Item item){
          this.buyer=buyer;
          this.item=item;
          sales.add(this);
     }
.....

先谢谢,我开始用Java编程。

1 个答案:

答案 0 :(得分:3)

您尚未初始化您的nosetests ArrayList。您可以通过更改

来完成此操作
sales

类似

private static ArrayList<Sale> sales;

使用diamond operator <>(Java 7+),如

private static ArrayList<Sale> sales = new ArrayList<Sale>();

但我建议你program to the List interface。像

这样的东西
private static ArrayList<Sale> sales = new ArrayList<>();

另一个可能的选项是静态初始化程序,例如

private static List<Sale> sales = new ArrayList<>();