Страницы

Поиск по вопросам

четверг, 2 мая 2019 г.

Как создать типизированный массив объектов?

Предыстория: пишу свою реализацию коллекции на основе массива (задание такое). И дошел до метода toArray()
Есть классический массив:
private E[] array;
как его проинициализировать так что бы когда я возвращаю этот массив он был не Object а именно того типа который поступил на вход в класс.
Такой вариант при возвращении все равно возвращает Object[]
array =(E[]) new Object[length]
Просмотрел уже несколько лекций по дженерикам в джаве и основная суть ясна, но нигде не говорят о типизированных массивах.


Ответ

Тут есть подробное описание проблемы на английском языке.
Вроде должно сработать как-то так:
public E[] getArray(Class clazz, int size) { @SuppressWarnings("unchecked") E[] arr = (E[]) Array.newInstance(clazz, size);
return arr; }

Комментариев нет:

Отправить комментарий