匿名、内部、またはローカルクラスを囲む外側のコードに同じシグネチャーのメソッドがあり、それらのクラスからスーパークラスのメソッドを呼び出している場合に報告します。 このような場合、実際にはスーパークラスのメソッドの呼び出しであっても、外側のコードのメソッドが呼び出されているように見えるかもしれません。

コードの意図を明確にするために、メソッドの呼び出しに明示的な super 修飾子を追加することをお勧めします。

例:


  class Parent {
    void ambiguous(){}
  }

  class Example {
    void ambiguous(){}

    class Inner extends Parent {
      void example(){
        ambiguous(); //警告
      }
    }
  }
  

クイックフィックス適用後:


  class Parent {
    void ambiguous(){}
  }

  class Example {
    void ambiguous(){}

    class Inner extends Parent {
      void example(){
        super.ambiguous();
      }
    }
  }