Выполнение фильтра больше или равного в stream (). Filter - PullRequest
0 голосов
/ 20 марта 2019

Я пытаюсь выполнить фильтр stream (), чтобы получить только те записи, у которых поле FedwireTagLabel в строке больше «1520». вот код, который у меня сейчас есть:

         FedwireMessage filterFinancials = financialMessageRecords.stream()
            .filter(e -> e.getFedwireTagLabel() >= "1520")
            .findAny()
            .orElse(null);

Это ошибка. Знаете ли вы, что такое обработка в stream (). Filter (), которую вы можете выполнить для строкового поля, большего или равного?

Еще раз спасибо

1 Ответ

0 голосов
/ 28 марта 2019

Вы сравниваете два String здесь. Вам нужно конвертировать метку в Integer.

 FedwireMessage filterFinancials = financialMessageRecords.stream()
            .filter(e -> Integer.parseInt(e.getFedwireTagLabel()) >= 1520)
            .findAny()
            .orElse(null);

Действительно, используя >= на String, вызовите метод CompareTo , который возвращает -1, 0 или 1 в соответствии с буквенным сравнением по умолчанию.

Для получения дополнительной информации, посмотрите этот пост .

Лучший

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