java - 是否需要检查当前引用是否为null?

标签 java this non-static nul

我了解到在非静态 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/

相关文章:

java - 在 Swing JFrame 上添加 WebView 控件

java - 在 Java 的静态方法中调用非静态方法

java - 为什么这个java代码显示 "non-static variable this cannot be referenced from a static context"错误?

java - 如何在匿名函数中访问 "this"?

java - 计算字符串的所有 1-hamming 距离邻居的最快方法?

java - Java 编译器是否可以重新排序同步语句以进行优化?

javascript - 学习Javascript : "this" keyword vs "arguments" object

javascript - 无法获取 'this' 变量的 ID

java - 从多个集合中删除一个对象

javascript - 为什么this在一个JS类方法中定义调用的函数中是未定义的。我希望这是窗口