gpt4 book ai didi

java - 为什么 Java 不提示模棱两可的调用?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:54:35 25 4
gpt4 key购买 nike

一个服务接口(interface)声明了两个显然做同样处理的方法:

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));
}

将调用哪个服务方法以及为什么编译器不提示此上下文中的模棱两可的调用?

最佳答案

方法解析选择most specific matching method当有多个可能的匹配项时。自 UnaryOperator<T>延伸Function<T,T> ,如果那个 lambda 匹配它(它匹配),它比 Function<T, T> 更具体所以 UnaryOperator将使用重载。

关于java - 为什么 Java 不提示模棱两可的调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54267537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com