Как обрабатывать события в зависимости от их типа - PullRequest
0 голосов
/ 02 мая 2019

Скажем, у меня есть и класс событий, который содержит данные и тип события (из удаленного сервиса)

public class Event{
  String StringData;
  Integer IntData;
  EvenType eventType;
}

, где EventType - это enum:

public enum EventType{
 NEW,UPDATE,DELETE
}

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

, например:

List<Event> events = ...
events.forEach(e->??? ); //how to process the event based on its type

1 Ответ

2 голосов
/ 02 мая 2019

Вообще говоря, это будет обработано оператором switch.

List<Event> events = ...
events.forEach(e->{
    switch (e.eventType) {
        case NEW:
          // do new thing
          break;
        case UPDATE:
          // do update thing
          break;
        case DELETE:
          // do delete thing
          break;
        default:
          throw UnexpectedEventType(); // just in case
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...