Рефакторинг лямда-выражения для использования Comparator.comparingDouble - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть следующее лямда-выражение.Моя IDE (intellij идея) говорит мне, что его следует заменить на Comparator.comparingDouble, но я не могу найти способ сделать это.

List<javafx.stage.Screen> screenList = screens;

screenList.sort((screenA, screenB) -> Double.compare(
               screenA.getBounds().getMinX(), screenB.getBounds().getMinX()));

Есть ли способ сделать это с помощью

screenList.sort(Comparator.comparingDouble(...));

или это ложная аннотация от intellij?Заранее благодарю за помощь!

Ответы [ 2 ]

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

В Intellij IDEA вам просто нужно вызвать быстрое исправление на сравнить (нажав Alt + Enter) и нажать Enter при предложении заменить на Comparator.comparing double , IDEA сделает заменуавтоматически.

screenList.sort((screenA, screenB) -> Double.com<ALTENTER_HERE>pare(
            screenA.getBounds().getMinX(), screenB.getBounds().getMinX()));

код будет заменен на:

 screenList.sort(Comparator.comparingDouble(screenA -> screenA.getBounds().getMinX()));
0 голосов
/ 18 февраля 2019

Вам просто нужна функция, которая преобразует Screen в double:

screenList.sort(Comparator.comparingDouble(screen -> screen.getBounds().getMinX()));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...