Объяснение использования @NonNull от Lombok - PullRequest
0 голосов
/ 15 июня 2019

Какая разница в использовании @NonNull в следующих двух случаях:

Дело 1:

class MyClass {
    @NonNull
    private String name;

    @Builder
    MyClass(String name) {
        this.name = name;
    }
    .
    .
}

Случай 2:

class MyClass {
    private String name;

    @Builder
    MyClass(@NonNull String name) {
         this.name = name;
    }
    .
    .
}

1 Ответ

1 голос
/ 15 июня 2019

Как уже говорилось, экспериментировать с деломбоком стоит больше, чем спрашивать. Однако случай 1 интересен тем, что MyClass(null).name просто возвращает null.

Вы можете подумать, что lombok не работает, но он просто не переписывает ваш написанный вручную конструктор. Он только гарантирует, что сам никогда не присваивает null полю, помеченному @NonNull. То, что вы делаете сами, является вашей ответственностью.

Ты не должен ожидать слишком многого от Ломбок. Это отличный инструмент, делающий мой код, возможно, на 30% короче, но, как и в случае с любым другим инструментом, вы должны знать его ограничения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...