Kotlin喜欢Java中的选择器

问题描述 投票:1回答:1

我在Kotlin中有这个代码,我该如何编写Java?

typealias ResolutionSelector = Iterable<Resolution>.() -> Resolution?

/**
 * @return Selector function which always provides the biggest resolution.
 */
fun highestResolution(): ResolutionSelector = { maxBy(Resolution::area) }
java kotlin collections iterable
1个回答
2
投票

不幸的是,Java没有类型别名。 而且我认为你能拥有的最好的是

resolutions.stream()
           .max(Comparator.comparingInt(Resolution::getArea));

Stream#max确实接受了Comparator<? super T> comparator,你可以提前建立,然后作为输入传递。

所以你可以存储一个lambda函数,如

final Comparator<Resolution> resolutionComparator = (r1, r2) -> /* Comparison logic */;

编辑:我用var发布的示例无法工作,因为编译器无法推断变量的实际类型。

© www.soinside.com 2019 - 2024. All rights reserved.