Получение ошибки при получении типа из массива, содержащегося в списке объектов с использованием потоков - PullRequest
0 голосов
/ 23 октября 2019
Optional<List<Spot>> geoData = getGeoCodeBat(geocodeRequestDTO, reportResponseDTO); //declaration of geoData
//**geoData is a list of object**
// **getting syntax error in map**
// **Errors is an array inside geocodes**
geoData.get().stream().map(m -> { 
    Arrays.stream(m.getErrors()).forEach(i ->{
        if(i.getType()==1) //Type is an field inside the Errors array
          {
            reportResponseDTO.setStatus(HttpStatus.BAD_REQUEST); //setting bad request in response
             reportResponseDTO.setStatusCode(400); // setting the bad request value
          }
    });

1 Ответ

0 голосов
/ 23 октября 2019

Не уверен, правильно ли я понял ваш вопрос. Но вы можете попробовать это:

boolean isBadRequest = geoData.orElseGet(Collections::emptyList)
                              .stream()
                              .map(Spot::getErrors)
                              .flatMap(Arrays::stream)
                              .anyMatch(i -> i.getType() == 1);

if (isBadRequest) {
    reportResponseDTO.setStatus(HttpStatus.BAD_REQUEST);
    reportResponseDTO.setStatusCode(400);
}
...