Сервисный интерфейс объявляет два метода, которые, по-видимому, выполняют одну и ту же обработку:
interface Service<T> {
<R> R process(Function<? super T, ? extends R> function);
T process(UnaryOperator<T> operator);
}
Вышеуказанная служба вызывается, как показано ниже:
void process(Service<CharSequence> service) {
service.process(sequence -> sequence.subSequence(0, 1));
}
Какой из методов службы являетсябудет вызываться, и почему компилятор не жалуется на неоднозначный вызов в этом контексте?