首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Java语言中,Class.this和这个有什么不同

在Java语言中,Class.this和这个有什么不同
EN

Stack Overflow用户
提问于 2011-04-15 00:05:22
回答 4查看 40.4K关注 0票数 128

有两种方法可以在该类中引用类的实例。例如:

class Person {
  String name;

  public void setName(String name) {
    this.name = name;
  }

  public void setName2(String name) {
    Person.this.name = name;
  }
}

一个使用this.name来引用对象字段,而另一个使用className.this来引用对象字段。这两个参考文献有什么不同?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-04-15 00:07:42

在这种情况下,它们是相同的。当您有一个需要引用其外部类实例的非静态嵌套类时,Class.this语法非常有用。

class Person{
    String name;

    public void setName(String name){
        this.name = name;
    }

    class Displayer {
        String getPersonName() { 
            return Person.this.name; 
        }

    }
}
票数 173
EN

Stack Overflow用户

发布于 2011-04-15 00:09:58

此语法仅在具有嵌套类时才变得相关:

class Outer{
    String data = "Out!";

    public class Inner{
        String data = "In!";

        public String getOuterData(){
            return Outer.this.data; // will return "Out!"
        }
    }
}
票数 87
EN

Stack Overflow用户

发布于 2011-04-15 00:07:53

您只需要对内部类使用className.this。如果您不使用它们,请不要担心。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5666134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档