如何将空数组传递给 java 中的构造函数?
How do I pass an empty array to the constructor in java?
这是代码:
// Default constructor
public Bestellung() {
this(null, null, null);
}
// Initial constructor
public Bestellung(LocalDateTime zeitstempelBestellung, LocalDateTime zeitstempelAuslieferung,
PizzaVO[] warenkorb, int index) {
super();
this.zeitstempelBestellung = zeitstempelBestellung;
this.zeitstempelAuslieferung = zeitstempelAuslieferung;
this.warenkorb = warenkorb;
this.index = index;
}
我想完成默认构造函数。因此,我必须将两个 localDateTimes、一个空数组和一个 int 传递给构造函数。如何传递空数组?
像这样:
public Bestellung() {
this(null, null, new PizzaVO[]{}, 1);
}
创建空数组与创建大小为 0 的常规数组完全相同:new PizzaVO[0]
。
因此,您的构造函数将如下所示:
public Bestellung() {
this(null, null, new PizzaVO[0], 0);
}
(你还没有提到你要如何初始化LocalDataTime
对象,所以我通过了null
)
How do I pass the empty array?
new PizzaVO[] { }
顺便说一句,这是不是默认构造函数:
public Bestellung() {
this(null, null, null);
}
它是一个无参构造函数。
嗯,你对我们所有的其他元素使用 "null";这将创建一个最有可能 无用 的 Bestellung 对象;因为当你第一次想用它做一些事情(比如调用它的一个方法)时,它很可能会在 NullPointerException 上失败。
那么是什么阻止您对数组也使用 "null"。
好吧,严肃的回答是你可以用
创建数组
new PizzaVO[] {}
例如。
真正严肃的答案仍然是:通常情况下,大多数时候拥有全空对象是没有意义的。所以你应该不以这种方式实现你的默认构造函数。
换句话说:如果您的对象在没有真正存在的参数的情况下无法创建...那么请不要提供允许用户实际执行此操作的构造函数。
你可以像这样传递一个空数组参数
new PizzaVO[0]
只需制作:
this.warenkorb = new PizzaV0[10];
这将初始化一个包含 10 个空值的空数组。
我不确定我是否完全理解你正在尝试做的事情或你想要实现的目标,也许你可以更清楚一点?
您可以像现在一样做并传递 null
(虽然这不是一个空数组)或者您可以传递一个实际的空数组 new PizzaVO[0]
(这是一个数组 PizzaVO
s,任何元素都没有 space)。
public Bestellung() {
this(null, null, null, 0);
}
或
public Bestellung() {
this(null, null, new PizzaVO[0], 0);
}
您正在寻找其中之一吗?还是我完全误解了什么?
这是代码:
// Default constructor
public Bestellung() {
this(null, null, null);
}
// Initial constructor
public Bestellung(LocalDateTime zeitstempelBestellung, LocalDateTime zeitstempelAuslieferung,
PizzaVO[] warenkorb, int index) {
super();
this.zeitstempelBestellung = zeitstempelBestellung;
this.zeitstempelAuslieferung = zeitstempelAuslieferung;
this.warenkorb = warenkorb;
this.index = index;
}
我想完成默认构造函数。因此,我必须将两个 localDateTimes、一个空数组和一个 int 传递给构造函数。如何传递空数组?
像这样:
public Bestellung() {
this(null, null, new PizzaVO[]{}, 1);
}
创建空数组与创建大小为 0 的常规数组完全相同:new PizzaVO[0]
。
因此,您的构造函数将如下所示:
public Bestellung() {
this(null, null, new PizzaVO[0], 0);
}
(你还没有提到你要如何初始化LocalDataTime
对象,所以我通过了null
)
How do I pass the empty array?
new PizzaVO[] { }
顺便说一句,这是不是默认构造函数:
public Bestellung() {
this(null, null, null);
}
它是一个无参构造函数。
嗯,你对我们所有的其他元素使用 "null";这将创建一个最有可能 无用 的 Bestellung 对象;因为当你第一次想用它做一些事情(比如调用它的一个方法)时,它很可能会在 NullPointerException 上失败。
那么是什么阻止您对数组也使用 "null"。
好吧,严肃的回答是你可以用
创建数组new PizzaVO[] {}
例如。
真正严肃的答案仍然是:通常情况下,大多数时候拥有全空对象是没有意义的。所以你应该不以这种方式实现你的默认构造函数。
换句话说:如果您的对象在没有真正存在的参数的情况下无法创建...那么请不要提供允许用户实际执行此操作的构造函数。
你可以像这样传递一个空数组参数
new PizzaVO[0]
只需制作:
this.warenkorb = new PizzaV0[10];
这将初始化一个包含 10 个空值的空数组。
我不确定我是否完全理解你正在尝试做的事情或你想要实现的目标,也许你可以更清楚一点?
您可以像现在一样做并传递 null
(虽然这不是一个空数组)或者您可以传递一个实际的空数组 new PizzaVO[0]
(这是一个数组 PizzaVO
s,任何元素都没有 space)。
public Bestellung() {
this(null, null, null, 0);
}
或
public Bestellung() {
this(null, null, new PizzaVO[0], 0);
}
您正在寻找其中之一吗?还是我完全误解了什么?