HPH*_*HPH 6 java generics lambda java-8 functional-interface
服务接口声明了两个显然执行相同处理的方法:
interface Service<T> {
<R> R process(Function<? super T, ? extends R> function);
T process(UnaryOperator<T> operator);
}
Run Code Online (Sandbox Code Playgroud)
上面的服务被调用如下:
void process(Service<CharSequence> service) {
service.process(sequence -> sequence.subSequence(0, 1));
}
Run Code Online (Sandbox Code Playgroud)
将调用哪种服务方法以及为什么编译器不会在此上下文中抱怨模糊调用?