有两种方法可以引用该类中的类实例.例如:
class Person {
String name;
public void setName(String name) {
this.name = name;
}
public void setName2(String name) {
Person.this.name = name;
}
}
Run Code Online (Sandbox Code Playgroud)
一个用于this.name引用对象字段,但另一个用于className.this引用对象字段.这两个引用有什么区别?
Str*_*ior 154
在这种情况下,它们是相同的.Class.this当你有一个非静态嵌套类需要引用它的外部类的实例时,语法很有用.
class Person{
String name;
public void setName(String name){
this.name = name;
}
class Displayer {
String getPersonName() {
return Person.this.name;
}
}
}
Run Code Online (Sandbox Code Playgroud)
Mic*_*rdt 82
只有嵌套类时,此语法才会变得相关:
class Outer{
String data = "Out!";
public class Inner{
String data = "In!";
public String getOuterData(){
return Outer.this.data; // will return "Out!"
}
}
}
Run Code Online (Sandbox Code Playgroud)