Lombok offers the annotation @NonNull
which executes the nullcheck and throws a NPE (if not configured differently).
I do not understand why I would use that annotation as described in the example of that documentation:
private String name;
public NonNullExample(@NonNull Person person) {
super("Hello");
if (person == null) {
throw new NullPointerException("person is marked @NonNull but is null");
}
this.name = person.getName();
}
The NPE would be thrown anyway. The only reason here to use the annotation imo is if you would want the exception to be different from a NPE.
EDIT: I do know that the Exception would be thrown explicitly and thus 'controlled', but at least the text of the error message should be editable, shouldn't it?
Writing a type annotation such as @NonNull
serves several purposes.
@NonNull
annotation or with an explicit programmer-written check. The "Vanilla Java" version either has a typo (a stray @NonNull
) or shows the code after Lombok processes it.