Разница между аннотациями @AllArgsConstructor и @NoArgsConstructor в Lombok заключается в том, что они генерируют разные конструкторы для класса: 35
- @AllArgsConstructor генерирует параметризованный конструктор, который принимает один параметр для каждого поля и инициализирует их с его помощью. 1 Аннотация необходима, если нужно создать объект класса, передав начальные значения полей в конструктор. 1
- @NoArgsConstructor используется для создания конструктора без аргументов. 1 Если какие-либо поля являются финальными, в определении класса нужно предоставить для них значение по умолчанию, иначе произойдёт ошибка компиляции. 3
Таким образом, @NoArgsConstructor применяется, когда нужно создать экземпляр класса без передачи каких-либо параметров, а @AllArgsConstructor — когда требуется инициализировать все поля класса за один раз. 5