Статический вложенный класс Java не хранит неявную ссылку на экземпляр внешнего класса; его удобно использовать для Builder, вспомогательного типа или результата операции.
Ты упомянул статические вложенные классы — можешь привести пример использования?
Статический вложенный класс Java не хранит неявную ссылку на экземпляр внешнего класса; его удобно использовать для Builder, вспомогательного типа или результата операции.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Статический вложенный класс Java не хранит неявную ссылку на экземпляр внешнего класса; его удобно использовать для Builder, вспомогательного типа или результата операции.
Пример с Builder показывает связь типов без обязательного внешнего объекта:
class Request {
private final String path;
private Request(String path) { this.path = path; }
static class Builder {
private String path = "/";
Builder path(String value) { path = value; return this; }
Request build() { return new Request(path); }
}
}
Создание выглядит как new Request.Builder().path("/health").build(). В отличие от нестатического inner class, здесь не требуется экземпляр Request для создания Builder. Статичность не делает поля Builder общими для всех его экземпляров.