Есть ли Handler в чистой Java

«Есть ли Handler в чистой Java» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, в чистой Java есть Handler, но он отличается от Android-реализации. В Java Handler — это интерфейс из пакета java.util.logging, который используется для обработки логов. Пример:

import java.util.logging.Handler;
import java.util.logging.LogRecord;

public class CustomHandler extends Handler {
    @Override
    public void publish(LogRecord record) {
        System.out.println(record.getMessage());
    }

    @Override
    public void flush() {}

    @Override
    public void close() {}
}

В Android Handler — это класс из android.os, предназначенный для работы с потоками и сообщениями. В Java аналогом для межпоточной коммуникации может быть ExecutorService или SwingUtilities.invokeLater() (для Swing).