class MyClass1 {
int x = 10;
public static void main(String[] args) {
MyClass1 obj = new MyClass1();
obj.execute();
}
private void execute() {
Thread t = new Thread(new Runnable(){
@Override
public void run() {
System.out.println(this);
System.out.println(MyClass1.this.x);
}
});
t.start();
}
}
这里指的是匿名内部类的对象。这就是为什么this.x不起作用。但是我们如何使用这个来引用MyClass1对象?请解释。当我们执行Sysout(this)时,它会输出[email protected],其中$指定内部类对象。我不清楚这一点。引用匿名内部类中的实例变量
你'this'是匿名的Runnable类,而不是MyClass1的。 –
@HovercraftFullOfEels不应该为静态主类中的类成员变量工作或? – SomeJavaGuy
@SomeJavaGuy:完全正确。需要。更多。咖啡! –