使用findbugs扫描下面的代码后,会报告Dodgy代码:NP:在新....中加载已知空值(在抛出新异常的行)
有时需要在初始化对象之前检查null。 为什么这被认为是"狡猾的" ??
public class Employee{
@Valid
private Department dept;
@JsonCreator
public Employee(@JsonProperty(value = "department", required = true) Department aDepartment)
throws EmpServiceException{
if (aDepartment == null) {
throw new EmpServiceException(aDepartment, "Invalid Request");
}
this.dept= aDepartment;
}
答案 0 :(得分:5)
我的猜测是FindBugs指出你抛出异常的行
throw new EmpServiceException(aDepartment, "Invalid Request");
相当于
throw new EmpServiceException(null, "Invalid Request");
并希望你使用后者。是用EmpServiceException
注释的@NonNull
构造函数的第一个参数吗?