Проблема в том, что 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());
}
}
Подробнее здесь: https://stackoverflow.com/questions/526 ... pe-in-java