Некоторые из Java-гуру могут не одобрить это, но у меня был некоторый хороший успех, когда я вообще избежал примитивных типов и сеттеров. Мой класс выглядит так:
class Employee extends SmartPojo {
public SmartString name;
public SmartInt age;
}
Вы заметите две вещи: 1. все публично. 2. Нет конструктора.
Волшебство происходит в SmartPojo, который ищет любое поле, которое реализует «умный» интерфейс, и инициализирует его. Поскольку это не примитив (и не конечный класс), я могу добавить методы set () и get () для всех полей в моей модели в одном месте . Так что больше нет необходимости тратить сеттер / геттер, просто невероятно просто добавить уведомление (также в одном месте) и т. Д.
Да, это больше не POJO, и это не Бин в большинстве случаев, но я обнаружил, что эти старые идеи ограничивают меня больше, чем помогают. YMMV.