开发者社区> 问答> 正文

开放过程中不是不建议用多个if并列嘛,那阿里fastjson源码中会有如下片段呢?

com.alibaba.fastjson.serializer.SerializeFilterable.addFilter(SerializeFilter)
这个方法中用连续9if,这样写是合理的,还是有待优化呢?求权威分析……

public void addFilter(SerializeFilter filter) {
    if (filter == null) {
        return;
    }
    
    if (filter instanceof PropertyPreFilter) {
        this.getPropertyPreFilters().add((PropertyPreFilter) filter);
    }
    
    if (filter instanceof NameFilter) {
        this.getNameFilters().add((NameFilter) filter);
    }
    
    if (filter instanceof ValueFilter) {
        this.getValueFilters().add((ValueFilter) filter);
    }
    
    if (filter instanceof ContextValueFilter) {
        this.getContextValueFilters().add((ContextValueFilter) filter);
    }
    
    if (filter instanceof PropertyFilter) {
        this.getPropertyFilters().add((PropertyFilter) filter);
    }
    
    if (filter instanceof BeforeFilter) {
        this.getBeforeFilters().add((BeforeFilter) filter);
    }
    
    if (filter instanceof AfterFilter) {
        this.getAfterFilters().add((AfterFilter) filter);
    }
    
    if (filter instanceof LabelFilter) {
        this.getLabelFilters().add((LabelFilter) filter);
    }
}

展开
收起
烛孩 2018-12-21 13:50:14 2063 0
3 条回答
写回答
取消 提交回答
  • 主要是看代码的可读性
    不要进行多重嵌套就好
    这个都是一重嵌套,并没有什么

    2019-07-17 23:23:25
    赞同 展开评论 打赏
  • 这个我觉得挺正常吧,需要避免的是if里套一堆if else的情况吧。。

    2019-07-17 23:23:25
    赞同 展开评论 打赏
  • 一般不建议多个if嵌套,截图中的代码可以接受

    2019-07-17 23:23:25
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
静态代码扫描体系在阿里移动研发的应用 立即下载
《开放搜索统一召回引擎实践》 立即下载
《开放搜索查询分析服务架构分享》 立即下载