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
发布的示例无法运行,因为编译器无法推断变量的实际类型。
我在 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
发布的示例无法运行,因为编译器无法推断变量的实际类型。