Встречается на собеседованиях • сегодня

Устарели ли анонимные классы с выходом Java 8

С выходом Java 8 анонимные классы не устарели, но стали менее популярными из-за лямбда-выражений. Они по-прежнему полезны, когда нужно реализовать интерфейс или абстрактный класс с несколькими методами, а не одним (как в функциональных интерфейсах).

Пример анонимного класса:

java
Runnable r = new Runnable() {
    @Override
    public void run() {
        System.out.println("Анонимный класс");
    }
};

То же через лямбду:

java
Runnable r = () -> System.out.println("Лямбда");

Анонимные классы остаются актуальными для:

  • Нефункциональных интерфейсов (много методов).
  • Переопределения поведения в legacy-коде.
  • Создания объектов с состоянием (полями).

Лямбды же лаконичнее для функциональных интерфейсов (Runnable, Comparator и т. д.).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы