Использование Java 8. Я хочу создать универсальную функцию, которую можно использовать для отображения содержимого объекта JSONArray
в определенный класс.Входными данными для этой функции будут JSONArray
и объект класса, имеющий конструктор, который превратит отдельные JSONObject
внутри JSONArray
в соответствующий POJO.
Я хочу что-то вроде этого:
public static List<T> getObjectsFromJSONArray(Class T, JSONArray input) {
return IntStream.range(0, input.length())
.mapToObj(index -> (JSONObject)input.get(index))
.collect(Collectors.toList())
.forEach(jsonObj -> new T(jsonObj));
}
Не компилируется.Возможно, потому что я новичок в Java и не привык к этому, я хочу сделать это универсальной функцией.
Одним из возможных альтернативных решений является создание класса U<T>
, который расширяет List и действует для всех намерений и целей как List<T>
.Конструктор для U
будет тогда принимать весь JSONArray, тогда мой код работает с указанным типом.Я уже видел эту реализацию в действии, но мне она кажется громоздкой.Дайте мне знать, если новый класс U
действительно является «наилучшей практикой» для этого в Java.