Avatar ·

Java中最好使用哪个@NotNull注解以及为什么?

大家好!我是一名初学Java的开发者,正在编写我的第一个重要项目。我遇到了一个问题:我的方法经常因为NullPointerException而崩溃,因为我忘记检查参数是否为null。我决定使用@NotNull注解,这样IDE就能提醒我潜在的问题,但这里出现了混淆。 在不同的项目中,我看到了不同的注解: - `javax.annotation.Nonnull`(来自JSR 305) - `org.jetbrains.annotations.NotNull`(来自IntelliJ IDEA) - `lombok.NonNull`(来自Lombok) - `jakarta.annotation.Nonnull`(来自Jakarta EE) - `javax.validation.constraints.NotNull`(来自Bean Validation) 我不明白应该为我的项目选择哪一个。例如,我写了这样的代码: ```java public class UserService { public User createUser(String name, String email) { // 这里有时会为null,但我经常忘记检查 if (name == null) { throw new IllegalArgumentException("Name must not be null"); } // 而email没有