“this”在Java中可以为空吗?

2022-08-31 09:17:17

在类方法中看到这句话,我的第一反应是嘲笑编写它的开发人员。但后来,我想我应该首先确保我是对的。

public void dataViewActivated(DataViewEvent e) {
    if (this != null)
        // Do some work
}

这条线会评估为假吗?


答案 1

不,它不能。如果您使用的是 ,那么您就在实例中,因此不为 null。thisthis

JLS说:

用作主表达式时,关键字 this 表示一个值,该值是对为其调用实例方法的对象 (§15.12) 或对正在构造的对象的引用。

如果您从对象调用了一个方法,则该对象存在,或者您将有一个之前的方法(或者它是一个静态方法,但是,您不能在其中使用)。NullPointerExceptionthis


资源:


答案 2

这就像问自己“我还活着吗? 永远不能为空this