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();