Возврат массива универсального типа в JavaJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Возврат массива универсального типа в Java

Сообщение Anonymous »

У меня есть преобразователь классов, который должен применять любой объект, реализующий интерфейс Function, к массиву типа D и возвращать массив типа R.

Проблема в том, что Java не позволяет мне использовать «новый R[]», и до сих пор я пытался найти способ создать массив R с нуля. В настоящее время я пытаюсь использовать метод Array.newInstance, но не могу найти способ сохранить тип класса R в переменной класса.

Код: Выделить всё

public class Mapper {

/**
* applies passed function to each object of type D in array
* @param function
* @param array
* @return array of type r and length array.length
*/

public static  R[] map(Function function, D[] array)  {

ArrayList list = new ArrayList();

//apply function to each variable
//add rs into object array
for( int i = 0; i < array.length; i++ ) {

R r = function.apply( array[i] );
list.add( r );

}

Class clazz = list.get(0).getClass();

return (R[])Array.newInstance(clazz, list.size());

}

}
Что я могу сделать, чтобы правильно получить значение класса во время выполнения для универсального типа R или иным образом вернуть объекты в ArrayList как R[]?

Подробнее здесь: https://stackoverflow.com/questions/526 ... pe-in-java
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»