![](/img/trans.png)
[英]How do I initialize an array of type String within a constructor in Java?
[英]How should I initialize an array of classes with a default (parameterless) constructor in Java?
我应该如何用一个空的构造函数初始化一个类数组?
我可以看到,如果我使用构造函数,我会这样做-
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-不用担心,我确实使用了明智的变量名!)
您要么必须一次将它们写出来,要么必须使用循环:
MyClass[] myArray = new MyClass[n];
for (int i = 0; i < myArray.length; ++i) {
myArray[i] = new MyClass();
}
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;
}
这将是您可以用于此目的的通用方法的粗略草稿。 当然,我跳过了所有的异常处理,因此该方法实际上会更加膨胀。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.