如何使用空构造函数初始化类数组?
我可以看到,如果我使用构造函数,我会这样做 -
MyClass[] myArray = new MyClass[] {
new MyClass(1),
new MyClass(2),
new MyClass(3)
};
但是使用空构造函数我不知道该怎么做。
MyClass[] myArray = new MyClass[] {
new MyClass(),
new MyClass(),
new MyClass()
};
这就是我现在所拥有的,但它似乎非常低效 - 有更好的方法吗?
(我在示例中将其称为MyClass / myArray以获取可读性 - 不用担心,我确实使用了合理的变量名称!)
答案 0 :(得分:6)
您要么必须一次写出一个,要么必须使用循环:
MyClass[] myArray = new MyClass[n];
for (int i = 0; i < myArray.length; ++i) {
myArray[i] = new MyClass();
}
答案 1 :(得分:0)
public static <T> T[] getArray(final Class<? extends T> memberclass, final int numberOfItems) {
final T[] array = new T[numberOfItems];
final Constructor constr = memberclass.getConstructor(null);
for (int index = 0; index < numberOfItems; index++) {
array[index] = constr.newInstance(null);
}
return array;
}
这将是您可以用于此目的的通用方法的粗略草案。当然,我跳过了所有异常处理,所以这种方法实际上会膨胀一些。