충돌하는 추상 메서드 시그니처를 가지는 함수형 인터페이스를 사용하는 오버로드된 메서드를 보고합니다.

그러한 오버로드는 모호함을 불러오며 호출자가 람다를 특정 타입으로 변환하거나 람다 매개변수 타입을 명시적으로 지정할 것을 요구합니다. 모호함을 제거하기 위해 오버로드된 메서드에 다른 이름을 부여하는 것이 좋습니다.

예:


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

여기서 SupplierCallable는 매개변수를 취하지 않고 void가 아닌 값을 반환하는 단일 추상 메서드를 포함하는 함수형 인터페이스입니다. 그 결과, 명시적인 형 변환이 사용되지 않는 한 람다의 타입을 호출 지점에서 추측할 수 없습니다.