Kotlin как селектор в Java - PullRequest
       21

Kotlin как селектор в Java

0 голосов
/ 26 февраля 2019

У меня есть этот код на Kotlin, как мне написать на Java?

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

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

1 Ответ

0 голосов
/ 26 февраля 2019

Ну, к сожалению, у Java нет псевдонимов типов.
И я думаю, что лучшее, что вы можете получить, это

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

Stream#max действительно принимает Comparator<? super T> comparator, что вы можетестроить раньше времени, а затем передавать в качестве ввода.

Таким образом, вы можете сохранить лямбда-функцию , такую ​​как

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

Редактировать: пример, который я опубликовалс var не может работать, потому что компилятор не может определить фактический тип переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...