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

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

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

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

почему ты хочешь сделать это?

Seelenvirtuose 26.02.2019 19:04

Чтобы добавить пользовательский селектор в список.

AVEbrahimi 26.02.2019 19:04

@AVEbrahimi Я немного не разбираюсь в Kotlin, не могли бы вы описать это словами? Что оно делает?

LppEdd 26.02.2019 19:08
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
3
257
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

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

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

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

Обновлено: пример, который я разместил с помощью var, не мог работать, потому что компилятор не мог определить фактический тип переменной.

Другие вопросы по теме