如果我将null作为参数传递给@NotNull
注释,是否有任何框架可以抛出异常?我不是指静态分析,而是运行时检查。
如果没有,如何实施呢?
答案 0 :(得分:7)
如果您使用的是Java 6或更低版本,则可以使用Guava
Preconditions
。
Preconditions.checkNotNull(param);
但是,如果您使用Java 7
或更高版本,则Objects
中会有一个效用方法。
Objects.requireNonNull(param);
并且有一个重载需要字符串来向将被抛出的NullPointerException
添加消息
Objects.requireNonNull(param,"Param cannot be null");
答案 1 :(得分:4)
Lombok @NonNull为您生成那些样板文件。而不是使用@NotNull注释方法,而是注释参数@NonNull。
import lombok.NonNull;
public class NonNullExample extends Something {
private String name;
public NonNullExample(@NonNull Person person) {
super("Hello");
//// if (person == null) {
//// throw new NullPointerException("person");
//// }
this.name = person.getName();
}
}
请参阅标记为lombok的众多问题以了解详情。