TGViewer
WorkMe | Центр экспертизы WorkMe | Центр экспертизы @workme_expert · 110 subscribers
Post #77 48
WorkMe | Центр экспертизы ⏰Пришло время задачки от эксперта! Автор задачи - Сергей Галанов, Backend Разработчик Эксперт Перед вами код: public class Generics { static void add(List list, Object value) { list.add(value); } public static void main(String[] args)…
🧐Настало время подводить итоги нашей рубрики "Задача от эксперта"!

На прошлой неделе мы публиковали задачу на знание дженериков от Сергея Галанова. Эту задачу Сергей часто задаёт на собеседованиях, чтобы проверить, понимает ли кандидат, как проходит этап компиляции. По его словам, из 100 человек верно отвечают не более 5–10.

Итак, что же произойдёт с этим кодом?
Правильный ответ — 3.

Почему?
✔️Метод add использует сырой тип List, что отключает проверку дженерик-типов на этапе компиляции. В результате компилятор выдаст только предупреждение, но не ошибку.
✔️Информация о типах стирается после компиляции, поэтому в рантайме System.out.println() вызывает метод toString(), который есть у любого объекта. В консоли выведется 1.
✔️При таком коде программа не пытается привести строку "1" к типу Integer, поэтому исключения ClassCastException не возникает.

А как получить ClassCastException?
Достаточно выполнить любое действие с объектом, например, вместо:

System.out.println(list.get(0));

написать:
Integer o = list.get(0);
System.out.println(o);

Почему задача полезна?
Она помогает понять, что дженерики — это, по сути, синтаксический сахар для компиляции, а в рантайме происходят только действия с объектами. Также важно помнить, что у всех классов есть методы класса Object.
  • 🔥 4
  • 👍 2
More from @workme_expert
  1. Sep 25, 2026🎬 Как увольнение главы OpenAI стало сюжетом фильма В январе 2027 года в российский прокат…
  2. Sep 25, 2026💬 Как AI-чаты вышли за рамки готовых реплик Сегодня AI-чаты помогают разбираться в сложны…
  3. Sep 22, 2026📝 Бриф может выглядеть презентабельнее обычного документа Word, а его подготовка — занима…
  4. Sep 18, 2026📱 Как MAX стал больше, чем мессенджер MAX стал каналом общения со школами и государственн…
  5. Sep 16, 2026Хорошее обновление собирает благодарности пользователей. Неудачное собирает всю команду в…
  6. Sep 11, 2026👀 С момента появления биометрии люди относятся к ней по-разному. Кто-то считает ее удобно…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →