【问题标题】:Is the "this" reference ever null in JavaJava中的“this”引用是否为空
【发布时间】:2013-06-29 09:34:17
【问题描述】:

这有什么价值?我在某处读到 C# (this==null) 是可能的。但是在 Java 中呢?那,下面的片段会返回true吗?

 if(this!=null)
 {
     return false;
 }
 else
 {
     return true;
 }

【问题讨论】:

标签: java null this


【解决方案1】:
if(this!=null)

上面的结果总是true,这意味着你的if的第一个分支总是会被执行,并且函数总是返回false

【讨论】:

  • @StinePike 当然可以。有人提出其他建议吗?在这个答案中?你的观点?
  • @EJP .. 哦起初 npe 写道它无效.. 我没有看到他更改了文本.. 所以当他修改时,我已经删除了该评论:)跨度>
  • @EJP:起初这个问题是关于this=!null,我说语法无效。然后=! 更改为!=,所以我编辑了答案以匹配问题。因此混乱。
【解决方案2】:

"this" 在 Java 中永远不能为空

.....?

if(this!=null)
{
 return false;
}

【讨论】:

    【解决方案3】:

    this 表示当前对象永远不能为空。

    【讨论】:

      【解决方案4】:

      this 永远不能是 null。因为 this 指的是对象的 self 实例。并且仅在已创建对象时才能访问它。

      所以 else 块是不可访问的。

      【讨论】:

        【解决方案5】:

        “this”关键字指的是“that”对象,您指的是..

        class Sample
        {
          int age; 
          Sample(int age)
          {
            this.age = age;   // this.age -> the variable a in the that current instance
          }
          public void display()
          {
             System.out.println(age);  //age here is actually this.age
          }
        }
        public class XYZ
        {
         public static void main(String[] args)
         {
           Sample a,b;
           a.display();
           b.display();
         }
        }
        

        【讨论】:

          【解决方案6】:

          在实例方法或构造函数中,this 是对当前对象的引用。所以它永远不会是null

          【讨论】:

          • 绝不是假的,你的意思是。测试为 != null。
          • 不,@EJP 实例。我现在也提到了这一点。它总是返回错误。
          • 什么'实例'? OP 代码中的测试是 (this!= null)。这个测试永远不会是假的。 '因为它是一个有效的语法'与它无关。
          • @EJP - 对于足够小的 true 值, false 为 true :-)
          • 现在既不是对也不是错,只是毫无意义。你没有清楚地表达自己。 @StephenC de minimis curat non lex.。 :-|
          【解决方案7】:

          逻辑思考 - 就像说If I don't exist...

          当前控制代码的东西必须存在,否则代码一开始就不会运行。

          【讨论】:

          • 不要这样概括。在某些语言中,this 在某些情况下可能为空。
          猜你喜欢
          • 2012-05-01
          • 1970-01-01
          • 2011-04-16
          • 1970-01-01
          • 2016-06-04
          • 1970-01-01
          • 1970-01-01
          • 2018-06-24
          • 2022-07-20
          相关资源
          最近更新 更多