для коллекции коллекций -> массив массивов: (он просто возвращает объект [] [], поскольку информация о типе для «T» отсутствует. Вы должны вручную передать класс T, если хотите массив будет правильным типом, и он будет более сложным)
public static Object[][] nestedListsToNestedArrays(
Collection<? extends Collection<?>> source){
Object[][] result = new Object[source.size()][];
int i = 0;
for (Collection<?> subCollection : source) {
result[i++] = subCollection.toArray();
}
return result;
}
Дополнительный вопрос: что с
вложенные массивы примитивных типов? Я
должны объявить методы для каждого
примитивный тип,
Да, вы можете либо объявить методы для каждого примитивного типа, либо использовать безопасность отражения и жертвования типов. Причина в том, что каждый тип примитивного массива не связан, и нет супертипа для всех типов примитивных массивов, кроме Object.
из-за запрещенного универсального массива
создание
Нет, но это причина другого вопроса: почему выше массив массива Collection of Collections -> массивов, возвращающих T [] [].