Есть метод, который возвращает List< String > (возможен любой объект), но я не знаю об этом и выясняю тип следующим способом:
Type returnType = ((ParameterizedType)entry.getGenericReturnType()).getActualTypeArguments()[0];
Потом я хочу создать TypeReference, в котором будет Collection, но я не могу, пишет : "can not fynd symbol".
TypeReference typeReference = new TypeReference<Collection<returnType>>() { };
Этот референс нужен для получения объектов из файла что бы jackson преобразовал данные в массив нужных мне объектов.
final File file = new File(path);
FileUtils.createFileWithParentDir(file);
FileUtils.createAndFillIfMissingOrEmpty(file, Collections.singletonList("[]"));
data = objectMapper.readValue(file, typeReference);
Как мне создать Collection по подобию уже существующего метода?
Попробуй использовать метод Objectmapper.#getTypeFactory. Примерно так
ObjectMapper objectMapper = new ObjectMapper();
TypeFactory typeFactory = objectMapper.getTypeFactory();
Type returnType = ((ParameterizedType)entry.getGenericReturnType()).getActualTypeArguments()[0];
List<Object> someClassList = objectMapper.readValue(jsonString, typeFactory.constructCollectionType(List.class, (Class)returnType));
Обрати внимание, что объявление someClassList
не содержит явного типа, однако все объекты в коллекции будут фактически иметь нужный тебе тип.
Оригинал ответа
Можно использовать генерацию класса по имени и Generic Method.
public static void main(String[] args) throws Exception {
Method method = A.class.getDeclaredMethod("a");
Type returnType = method.getGenericReturnType();
Class clazz = Class.forName(returnType.getTypeName());
TypeReference typeReference = createTypeReference(clazz);
}
static <T> TypeReference<Collection<T>> createTypeReference(Class<T> clazz) {
return new TypeReference<Collection<T>>() {
};
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
При попытке создания объекта класса, не выходит создать объект класса, ссылаясь на:
Добрый день! Не могу решить данную задачу, буду очень признателенНеобходимо выполнить внешнее отсечение пятиугольника окном на основе алгоритма...
У меня 2 Activity на одном RecyclerView, на другом FragmentВ Activity в котором RecyclerView все хорошо работает, он заполняется