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:まったく正しい。必要。もっと。コーヒー! –