Avatar ·

Quelle annotation Java @NonNull/@NotNull est préférable d'utiliser ? Comparaison et recommandations

Bonjour à tous ! Je suis un développeur Java débutant, et depuis deux jours je me casse la tête sur une question apparemment simple : quelle annotation @NotNull (ou @NonNull) utiliser dans un projet ?

Le problème est que je les vois à différents endroits et je ne comprends pas laquelle est la "bonne". Par exemple, dans IntelliJ IDEA, il y a org.jetbrains.annotations.NotNull. Dans un projet Spring Boot, je suis tombé sur javax.annotation.Nonnull (maintenant jakarta.annotation.Nonnull). Et un collègue a dit qu'il valait mieux utiliser jakarta.validation.constraints.NotNull ou lombok.NonNull.

Voici un exemple simple qui me trouble :

import org.jetbrains.annotations.NotNull;

public class UserService {

    public String greet(@NotNull String name) {
        return "Hello, " + name;
    }

    public static void main(String[] args) {
        UserService service = new UserService();
        System.out.println(serv