Java中的Class.this和this有什么不同?
有两种方法可以引用该类中的类的实例。 例如:
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来引用对象字段。 这两个引用有什么区别? 
 在这种情况下,他们是一样的。 当你有一个需要引用其外部类的实例的非静态嵌套类时, Class.this语法是非常有用的。 
 class Person{ String name; public void setName(String name){ this.name = name; } class Displayer { String getPersonName() { return Person.this.name; } } } 
这个语法只有在嵌套类时才会变得相关:
 class Outer{ String data = "Out!"; public class Inner{ String data = "In!"; public String getOuterData(){ return Outer.this.data; // will return "Out!" } } } 
你只需要为内部类使用className.this。 如果你不使用它们,不要担心。
  Class.this对于引用一个不是静态的Class.this是有用的。 
 要实例化一个非静态的InnerClass ,你必须首先实例化InnerClass 。 因此,一个非静态的InnerClass将始终有一个InnerClass的引用,并且所有的InnerClass的字段和方法都可以被InnerClass 。 
 public static void main(String[] args) { OuterClass outer_instance = new OuterClass(); OuterClass.InnerClass inner_instance1 = outer_instance.new InnerClass(); OuterClass.InnerClass inner_instance2 = outer_instance.new InnerClass(); ... } 
 在这个例子中,两个Innerclass都是从相同的Innerclass类实例化的,因此它们都具有相同的Outerclass引用。