报告采用的函数接口存在抽象方法签名冲突的重载方法。

这样的重载会引入歧义,并要求调用方将 lambda 转换为特定类型或显式指定 lambda 参数类型。 最好为重载方法赋予不同的名称,以消除歧义。

示例:


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

这里的 SupplierCallable 为功能接口,其单抽象方法不接受任何参数并返回非 void 值。 因此,除非使用显式转换,否则无法在调用点推断 lambda 的类型。