Java 从具有相同名称的线程中调用父方法
我需要调用一个与线程的方法同名的方法。简化示例:Java 从具有相同名称的线程中调用父方法,java,multithreading,polymorphism,Java,Multithreading,Polymorphism,我需要调用一个与线程的方法同名的方法。简化示例: 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.getStat
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()内部调用.getState()?由于您位于匿名内部类中,因此需要使用(有些混乱的)语法显式指定封闭的外部类:
其中
A.this
实际上意味着“包含此内部类的封闭A
实例”。由于您位于匿名内部类中,因此需要使用以下语法明确指定封闭的外部类:
其中A。此
有效地表示“包含此内部类的封闭A
实例”
A.this.getState();