【问题标题】:What does "qualified this" construct mean in java?java中的“qualified this”构造是什么意思?
【发布时间】:2012-07-01 21:11:17
【问题描述】:

在Effective Java 项目“第 22 项:优先使用静态成员类而不是非静态”中,Josh Bloch 说:

非静态成员类的每个实例都隐含地与一个 包含其包含类的实例。在非静态的实例方法中 成员类,您可以在封闭实例上调用方法或获取引用 使用限定的 this 构造到封闭实例。

他所说的合格的这个构造是什么意思?

【问题讨论】:

  • EnclosingType.this
  • 在计算机科学术语中,限定符或限定标识符是名称(选择路径)x.y.z。这早于 java。
  • @pst +1,因为您在评论中回答了。我如何接受你的回答?
  • 一个标识符很难回答——它需要一些上下文来说明为什么它是有用的。我现在没有足够的时间来伸张正义。

标签: java jls


【解决方案1】:

非静态成员类具有对封闭类实例的隐式引用。 Qualified This 术语指的是封闭类的实例。如果封闭类是A,内部类是B,则可以将B 中的A 的封闭引用寻址为A.this。

【讨论】:

    【解决方案2】:

    没有限定符,x() 将递归。使用限定符,将调用封闭实例的 x() 方法。

    class Envelope {
      void x() {
        System.out.println("Hello");
      }
      class Enclosure {
        void x() {
          Envelope.this.x(); /* Qualified*/
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-20
      • 1970-01-01
      • 2011-08-22
      • 1970-01-01
      • 2011-09-10
      • 2018-10-29
      相关资源
      最近更新 更多