オーバーロードメソッドで、抽象メソッドのシグネチャーが競合している関数型インターフェースを使用しているものを報告します。

このようなオーバーロードはあいまいさをもたらし、呼び出し元にラムダを特定の型にキャストするか、ラムダパラメーターの型を明示的に指定することを要求します。 あいまいさを排除するため、オーバーロードメソッドには別々の名前を付けることをお勧めします。

例:


  interface MyExecutor {
    void execute(Supplier<?> supplier);
    void execute(Callable<?> callable);
  }

ここで、SupplierCallable はパラメーターを受け取らず、非 void の値を返す単一の抽象メソッドを持つ関数型インターフェースです。 その結果、明示的なキャストが使用されない限り、ラムダの型を呼び出しサイトで推測することはできません。