java - 如何根据事件类型处理事件
问题描述
假设我有一个包含数据和事件类型的事件类(来自远程服务)
public class Event{
String StringData;
Integer IntData;
EvenType eventType;
}
其中 EventType 是枚举:
public enum EventType{
NEW,UPDATE,DELETE
}
假设我有一个隐性事件流的管道,需要根据其类型处理事件内部的数据。例如,如果是新事件,则需要保存到数据库和日志,如果是删除事件,则将其保存到文件,因此每种事件类型都有自己的行为需要实现。
例如:
List<Event> events = ...
events.forEach(e->??? ); //how to process the event based on its type
解决方案
一般来说,这将由一个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
}
});
推荐阅读
- php - php金额比较不正确
- javascript - 如何禁用某些特定浏览器的预加载器?
- javascript - 应用屏蔽后如何解决 IE11 上的输入闪烁问题?
- html - 引导导航栏崩溃无法正常工作angular6
- maven - maven spring boot 返回“无法启动嵌入式 Tomcat”错误
- aop - 不同项目中的Spring AOP不起作用
- powerbi - 在 DAX PowerBI 中连接
- mysql - MySQL 复合索引列顺序和性能
- django - django DetailView 如何显示详细信息页面
- java - 在 ConditionalOnProperty 注释中使用主机名