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