开放过程中不是不建议用多个if并列嘛,那阿里fastjson源码中会有如下片段呢?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

开放过程中不是不建议用多个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 1844 0
3 条回答
写回答
取消 提交回答
  • griffin_curry

    主要是看代码的可读性
    不要进行多重嵌套就好
    这个都是一重嵌套,并没有什么

    2019-07-17 23:23:25
    赞同 展开评论 打赏
  • mqtq

    这个我觉得挺正常吧,需要避免的是if里套一堆if else的情况吧。。

    2019-07-17 23:23:25
    赞同 展开评论 打赏
  • 1565966273186108

    一般不建议多个if嵌套,截图中的代码可以接受

    2019-07-17 23:23:25
    赞同 展开评论 打赏
问答排行榜
最热
最新
相关电子书
更多
静态代码扫描体系在阿里移动研发的应用
立即下载
动态、高效,蚂蚁动态卡片的内核逻辑
立即下载
函数计算最佳实践:快速开发一个分布式 Puppeteer 网页截图服务
立即下载