gpt4 book ai didi

java - 为什么 sorted(Comparator::reverseOrder) 不起作用?

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:04:11 26 4
gpt4 key购买 nike

下面的 Stream 表达式工作得很好:

Stream<String> s = Stream.of("yellow","blue", "white");
s.sorted(Comparator.reverseOrder())
.forEach(System.out::print);` //yellowwhiteblue

为什么带有方法引用的等价物不能编译?

s.sorted(Comparator::reverseOrder).forEach(System.out::print);

The type Comparator does not define reverseOrder(String, String) that is applicable here

最佳答案

方法引用告诉 Java “将此方法视为单一方法接口(interface)的实现”——也就是说,方法引用应具有签名 int foo(String,String)从而实现Comparator<String> .

Comparator.reverseOrder()不会——它返回 一个 Comparator实例。自 sorted正在寻找 Comparator ,它可以获取方法调用的结果,但不能将该方法用作接口(interface)实现。

关于java - 为什么 sorted(Comparator::reverseOrder) 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43036611/

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