Как создать конструктор, который принимает параметр массива и инициализировать значения в базовом массиве в Java?
Конструктор должен сделать так, чтобы, когда я вызываю его в main, передавал ему массив в качестве параметра инициализированный объект, который выводится конструктором, совпадает с параметром массива.
public class MyClass<E> {
protected E[] underlyingArray;
public MyClass(Object[] arr) {
underlyingArray = (E[]) new Object[arr.length];
for (int i = 0; i < arr.length; i++) {
this.underlyingArray[i] = (E) arr[i];
}
}
public void print() {
for (int i = 0; i < size; i++) {
System.out.println(i + ": " + underlyingArray[i]);
}
}
public static void main(String[] args) {
final String[] array = { "d", "e", "f" };
final MyClass myArray = new MyClass((Object[])array);
myArray.print();
Ожидается:
0: d
1: e
2: f
Фактически: я получаю индекс вне границ исключение, поскольку myArray
никогда не инициализировалось после передачи arr
через myClass
конструктор.
Я пробовал несколько комбинаций в конструкторе MyClass
, но не смог успешно инициализировать базовый массив myArray
.