Java / Lombok Interview questions
What is @NonNull used for?
Placing @NonNull on a field, constructor parameter, or method parameter tells Lombok to
generate a null check at the start of the relevant generated (or annotated) method, throwing a
NullPointerException immediately with a clear message if the value is null, rather
than letting a null slip through and fail confusingly somewhere else later.
public class Person { @NonNull private String name; public Person(@NonNull String name) { this.name = name; } } // generates: if (name == null) { // throw new NullPointerException("name is marked non-null but is null"); // }
It's a lightweight, compile-time-generated form of defensive null checking — not a substitute for a real nullability analysis tool, but a convenient way to fail fast with a clear error at the point a null was actually passed in, rather than at some later, harder-to-trace point in the code.
More Related questions...