我正在使用Java代码:
public class Test {
public static void main(String[] args) {
Student student = new Student(1,"test");
printId(student);
}
private static void printId(Student obj) {
if(Objects.isNull(obj))
return;
System.out.println("Id: " + obj.getId());
}
}
public class Student {
private int id;
private String name;
public Student(int id, String name) {
this.id = id;
this.name = name;
}
public int getId(){
return id;
}
}
在System.out.println ...行中,声纳表明obj可以为空,但我已经检查了空值。
有什么办法可以解决这个问题?
答案 0 :(得分:0)
您可以使用显式null测试。
if(null==obj)
return;
......
该规则本身无法将Objects.isNull的使用识别为null检查。 Objects.isNull(Object obj)返回null == obj表达式的结果,因此可以安全地替换它。
不过,您可以联系SonarSource并建议更改规则。