Можем ли мы выбросить два исключения путем потоковой передачи и отображения? - PullRequest
0 голосов
/ 15 апреля 2019

На самом деле я хочу выдать два исключения как часть проверки двух условий. Но интересно, как генерировать эти исключения после потоковой передачи и отображения.

Это код для преобразования в Java-8 с использованием потоков

  for(GroupCallCenter existingGroupCall : group.getGroupCallCenters())
   {
        if(!existingGroupCall.getCallCenter()
          .getId().equals(accountCallCenterResource.getCallCenterId())) 
            {
             if(!accountCallCenterResource.getValidity().getEffectiveStarting().isAfter(existingGroupCall.getExpirationDate())&&!existingGroupCall.getEffectiveDate().isAfter(accountCallCenterResource.getValidity().getExpiresAfter())) 
               {
                 throw new ApiException(ApiErrorCode.DEFAULT_400, "Group call 
                     center already exist for that period");
                  }
       }
  else {
         throw new DuplicateException(ApiErrorCode.DUPLICATE, 
         existingGroupCall.getId());   
       }
   }

1 Ответ

1 голос
/ 15 апреля 2019

Вы можете просто применить простой поток для каждого, как показано ниже:

group.getGroupCallCenters().stream().forEach((existingGroupCall) ->
           {
               if(!existingGroupCall.getCallCenter()
              .getId().equals(accountCallCenterResource.getCallCenterId())) 
             {
               if 
              (!accountCallCenterResource.getValidity().getEffectiveStarting()
                    .isAfter(existingGroupCall.getExpirationDate())
                    && !existingGroupCall.getEffectiveDate()                      

       .isAfter(accountCallCenterResource.getValidity().getExpiresAfter())) 
                   {
               throw new ApiException(ApiErrorCode.DEFAULT_400, "Group call center already exist for that period");
                      }
           }
            else {
                throw new DuplicateException(ApiErrorCode.DUPLICATE, 
          existingGroupCall.getId());   
                }
            });

Вы не упомянули, что такое accountCallCenterResource объект в вашем коде. Вы должны убедиться, что accountCallCenterResource является окончательным или эффективным, чтобы использовать его внутри метода stream.

Для более детального понимания вы можете обратиться к этому

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