我了解到在非静态 block 内,this
表示调用该 block 的当前引用。我的疑问是是否需要检查this
是永远null
或者不是,我的意思是如果它首先为空,则 block (方法,构造函数等)将不会被执行( 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”本身代表该类在该类范围内的当前 Activity 实例(对象),通过它您可以访问其所有字段和成员(包括构造函数)以及其父类的可见字段和成员。
有关更多信息,请查看 Can "this" ever be null in Java?
关于java - 是否需要检查当前引用是否为null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47905570/