将项目添加到 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<>();
}
我有一个只能从 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<>();
}