Java 中的 Kotlin 类选择器

Kotlin like selector in Java

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

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

/**
 * @return Selector function which always provides the biggest resolution.
 */
fun highestResolution(): ResolutionSelector = { maxBy(Resolution::area) }

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

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

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

因此您可以存储 lambda 函数,例如

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

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