【发布时间】:2019-01-19 13:20:59
【问题描述】:
一个服务接口声明了两个方法,它们显然做同样的处理:
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));
}
将调用哪个服务方法以及为什么编译器不抱怨在这种情况下的模棱两可的调用?
【问题讨论】:
标签: java generics lambda java-8 functional-interface