我需要调用一个名称与线程方法之一相同的方法。精简示例:
class A {
public void getState() {
System.out.println("Okay"); //expected to get called
}
public void exampleCall() {
new Thread() {
@Override public void run() {
getState(); //gives Thread.getState instead
}
}.start();
}
}
如何在run()中调用A.getState()?
答案 0 :(得分:1)
由于您位于匿名内部类内部,因此需要使用(有点令人困惑)语法明确指定封闭的外部类:
A.this.getState();
A.this
的有效含义是“包含此内部类的封闭A
实例”。