Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Java: typereference, jackson, generics

Для чего используется TypeReference в Jackson?

Вопрос проверяет знание практических приёмов работы с Jackson и generics.

Короткий ответ

TypeReference используется для передачи информации о generic-типах в runtime.
Он позволяет обойти ограничения type erasure.
Чаще всего применяется при десериализации коллекций.
Работает за счёт анонимных классов.
Без него Jackson не знает реальный тип элементов.

Длинный ответ

TypeReference — это инфраструктурный механизм, а не «магия».

Определение

TypeReference<T> — это класс Jackson, предназначенный для сохранения информации о параметризованном типе.

Почему он работает

Ключевая идея:

  • создаётся анонимный подкласс

  • generic-тип фиксируется в сигнатуре класса

  • информация доступна через reflection

Пример:

TypeReference<List<User>> ref =
    new TypeReference<List<User>>() {};

Где используется

  • List<T>

  • Map<String, T>

  • вложенные generic-типы

Пример:

Map<String, List<User>> data =
    objectMapper.readValue(
        json,
        new TypeReference<Map<String, List<User>>>() {}
    );

Когда он не нужен

  • при десериализации в конкретный класс

  • при отсутствии generic-параметров

Вывод

TypeReference — стандартный способ корректно передать Jackson информацию о generic-типах.

Уровень

  • Рейтинг:

    5

  • Сложность:

    6

Навыки

  • Java

    Java

Ключевые слова

#typereference

#jackson

#generics

Подпишись на Java Developer в телеграм