如何将空数组传递给java中的构造函数?

时间:2015-05-07 09:29:40

标签: java arrays constructor null

这是代码:

// 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传递给构造函数。如何传递空数组?

7 个答案:

答案 0 :(得分:4)

  

如何传递空数组?

new PizzaVO[] { }

BTW,这是不是默认构造函数:

public Bestellung() {
    this(null, null, null);
}

它是一个无参数的构造函数。

答案 1 :(得分:1)

像这样:

public Bestellung() {
    this(null, null, new PizzaVO[]{}, 1);
}

答案 2 :(得分:1)

创建空数组与创建0大小的常规数组完全相同:new PizzaVO[0]

所以,你的构造函数看起来像:

public Bestellung() {
    this(null, null, new PizzaVO[0], 0);
}

(你还没有提到你想如何初始化LocalDataTime个对象,所以我通过了null

答案 3 :(得分:0)

嗯,你使用" null"我们所有其他元素;这将创建一个很可能无用的Bestellung对象;因为它很可能在第一次使用NullPointerException时失败(比如调用它的一个方法)。

那么是什么阻止你使用" null"对于阵列也是如此。

好的,严肃的回答是你可以使用

创建数组
new PizzaVO[] {}

例如。

真正认真的答案仍然是:通常,大多数时候都没有任何意义。所以你应该以这种方式实现你的默认构造函数。

换句话说:如果您的对象无法在没有真实存在参数的情况下创建......那么就不要提供允许用户实际执行此操作的构造函数。

答案 4 :(得分:0)

只需:

this.warenkorb = new PizzaV0[10];

这将使用10个空值初始化一个空数组。

答案 5 :(得分:0)

我不确定我是否完全明白你想要做什么或想要实现什么,也许你可以更清楚一点?

你可以像现在这样做并传递null(尽管这不是一个空数组)或者你可以传递一个实际的空数组new PizzaVO[0](这是一个{{1 s没有任何元素的空间)。

PizzaVO

public Bestellung() {
    this(null, null, null, 0);
}

您正在寻找的是其中之一吗?还是我完全误解了什么?

答案 6 :(得分:-1)

您可以像这样传递一个空数组参数

new PizzaVO[0]