将项目添加到 ArrayList "recursively"

Add item to ArrayList "recursively"

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

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

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 开始编程。

您还没有初始化您的sales ArrayList。您可以通过更改

private static ArrayList<Sale> sales;

类似于

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

使用 diamond operator <> (Java 7+) like

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

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

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

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

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