Проблема не в том, как вы создали новый массив типа generi c. Фактически, вы создали Folder<T>[]
правильно, используя new Folder[arraySize]
. Да, есть предупреждение, но это из-за ограничения / недостатка в системе типов Java.
Причина, по которой все это значение null, состоит в том, что вы создали пустую папку, Folder myFolder = new Folder();
, и поместите его содержимое (null
) в массив (folderArray[i] = (Folder<T>) myFolder.get();
).
Согласно описанию задачи вы должны скопировать содержимое папки, представленной как одно из параметры, folder
:
public static <T extends Copy<T>> Folder<T>[] multiply(Folder<T> folder, int arraySize) {
Folder<T>[] folderArray = new Folder[arraySize];
// for arraySize times...
for (int i = 0; i < arraySize; i++) {
// create a new, empty folder
Folder<T> newFolder = new Folder<>();
// put the copy of the parameter folder's contents into the new folder
newFolder.put(folder.get().copy());
// put the new folder into the array
folderArray[i] = newFolder;
}
return folderArray;
}