【发布时间】:2023-03-06 15:59:01
【问题描述】:
我了解到,在非静态块内,this 表示调用该块的当前引用。我怀疑是否需要检查this 是否曾经null,我的意思是如果它首先为空,则块(方法、构造函数等)将不会被执行(NPE)。我遇到了这段代码,它检查this != null。不知道为什么要用,真的有必要吗?
public int compareTo(StudentMarksTO arg0) {
if(arg0.isIsfalsegenerated()==true) {
if(arg0!=null && this!=null &&
arg0.getFalseNo()!=null && this.getFalseNo()!=null &&
!arg0.getFalseNo().toString().equals("") &&
!this.getFalseNo().toString().equals("") ) {
return this.getFalseNo().compareTo(arg0.getFalseNo());
}
else
return 0;
}
}
【问题讨论】:
-
this!=null 永远不能为假
-
'this' 永远不会为空
-
就是这样,我想知道为什么没有显示警告
-
FWIW,默认的 IntelliJ 检查将其标记为有问题。
-
在理论上 this 为空的情况下,您将永远无法进入(非静态)方法
标签: java this non-static nul