Невозможно преобразовать из потока <Object>в неизвестное - PullRequest
1 голос
/ 09 марта 2020

Я сталкивался с проблемой «Не удалось преобразовать поток объекта в неизвестный» при попытке использовать карту из функции Lambdas.

Фрагмент кода:

List<Address> addresses = infoContactDetails.getAddresses().stream()
                .filter(address -> address.getAddressType().equalsIgnoreCase("Test"))
                .map(address -> address.getAddressType().equalsIgnoreCase("Test")
                        ? null
                        : requestContactDetails.getAtThisAddressSince() ? null : address)
                .collect(Collectors.toList());

Code screesnshot with error

My environment variables java home

My Eclipse Compiler screenshot

1 Ответ

1 голос
/ 09 марта 2020

Этот код может быть реорганизован: эта строка является избыточной, поскольку вы уже выполняете этот фильтр в строке выше:

.map(address -> address.getAddressType().equalsIgnoreCase("Test")

То же самое с requestContactDetails.getAtThisAddressSince(), она не добавляет никакого значения в потоке и Вы знаете его значение до исполнения. Итак, в конце концов это можно записать так:

List<Address> addresses = requestContactDetails.getAtThisAddressSince() 
                ? new ArrayList<>() : 
                infoContactDetails.getAddresses().stream()
                .filter(address -> address.getAddressType().equalsIgnoreCase("Test"))
                .collect(Collectors.toList());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...