Вернуть два разных типа данных на основе условия из одного и того же метода - PullRequest
0 голосов
/ 23 января 2020

В поисках лучшей стратегии для обработки метода возвращается два разных типа данных на основе условия

public Response find(int id) {

Student std = studentService.findOne(empId):

if(std == null)
    return new ErrorResponse(errorCode);
else
   return new SuccessResponse(std);  

}

В одном условии я не могу реализовать интерфейс для ErrorResponse или SuccessResponse.

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

Эти классы являются динамически сгенерированными классами другими Клиентами

1 Ответ

0 голосов
/ 24 января 2020
 @Getter
 @Setter
 Class Response {
  private ErrorResponse error;
  private SuccessResponse success;
 }


 public Response find(int id) {
 Response res = new Response();
  Student std = studentService.findOne(empId):
  if (std == null)
    res.set(new ErrorResponse(errorCode));
  else
    return res.set(new SuccessResponse(std));
 }

Я думаю, что может быть полезно использовать Optional of ErrorResponse и SuccessResponse

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