Что такое POJO в Java?

«Что такое POJO в Java?» — вопрос из категории Основы программирования, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

POJO (Plain Old Java Object) — это простой Java-класс, который не зависит от специфичных фреймворков, не наследует предопределенные классы и не реализует особые интерфейсы. Его основная цель — инкапсуляция данных с минимальной логикой.

Пример POJO-класса:

public class User {
    private String name;
    private int age;

    // Геттеры и сеттеры
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }

    public int getAge() { return age; }
    public void setAge(int age) { this.age = age; }
}

Ключевые характеристики:

  • Независимость от инфраструктуры — не содержит аннотаций фреймворков (например, @Entity, @JsonProperty).
  • Простота — только поля, стандартные геттеры/сеттеры и, возможно, базовые методы (например, toString()).
  • Следование Java-конвенциям — должен иметь конструктор по умолчанию.

Применение:

  • DTO (Data Transfer Object) — для передачи данных между слоями приложения.
  • Модели предметной области — представление бизнес-сущностей.
  • Значения в коллекциях — благодаря простоте и предсказуемости.

Почему это важно? POJO обеспечивает переносимость кода, упрощает тестирование (так как не требует поднятия контекста фреймворка) и делает структуру данных прозрачной.