让我们假设我有类 Event 和类 Event 的10个子类( SubEvent1, SubEvent2 ...等等) . 我已经配置了 spring 批 ItemReader , ItemProcessor 和 ItemWriter .
我的物品处理器看起来像:
ItemProcessor<Event, Outputclass> {
OutputClass process(Event e) {
if(e instancof SubEvent1) {
return processSubEvent1(e);
} else if(e instanceof SubEvent2) {
return processSubEvent2(e);
} else ...
}
是否有可能避免那些instanceof并由特定于类的处理器处理它?
1 回答
你应该能够使用以下组合来做到这一点:
ClassifierCompositeItemProcessor:处理每个项目及其对应的
ItemProcessor
SubclassClassifier:根据子类型对项目进行分类 .
希望这可以帮助 .