AnNong。 2021-06-16 16:46 采纳率: 50%
浏览 38
已结题

java中递进式判断如何优化?

 代码如下:

 private static void test(String a, String b, String c, String d) {
        if (StringUtils.isNotEmpty(a) && StringUtils.isNotEmpty(b) && StringUtils.isNotEmpty(c) && StringUtils.isNotEmpty(d)) {
            //都不为空 do something
        } else if (StringUtils.isNotEmpty(a) && StringUtils.isNotEmpty(b) && StringUtils.isNotEmpty(c) && StringUtils.isEmpty(d)) {
            //abc不为空且d为空 do something
        } else if (StringUtils.isNotEmpty(a) && StringUtils.isNotEmpty(b) && StringUtils.isEmpty(c) && StringUtils.isEmpty(d)) {
            //ab不为空且cd为空 do something
        } else if (StringUtils.isNotEmpty(a) && StringUtils.isEmpty(b) && StringUtils.isEmpty(c) && StringUtils.isEmpty(d)) {
            //a不为空且bcd为空 do something
        } else if (StringUtils.isEmpty(a) && StringUtils.isEmpty(b) && StringUtils.isEmpty(c) && StringUtils.isEmpty(d)) {
            //都为空 do something
        }
    }
  • 写回答

2条回答 默认 最新

  • li.siyuan 2021-06-16 16:55
    关注

    使用套娃模式, 更清晰一些 每一个判断条件 只写一次

    private static void test(String a, String b, String c, String d) {
            if (StringUtils.isNotEmpty(a)) {
                if (StringUtils.isNotEmpty(b)) {
                    if (StringUtils.isNotEmpty(c)) {
                        if (StringUtils.isNotEmpty(d)) {
                            //都不为空 do something
                        } else {
                            //abc不为空且d为空 do something
                        }
                    } else if (StringUtils.isEmpty(d)) {
                        //ab不为空且cd为空 do something
                    }
                } else if (StringUtils.isEmpty(c) && StringUtils.isEmpty(d)) {
                    //a不为空且bcd为空 do something
                }
            } else if (StringUtils.isEmpty(b) && StringUtils.isEmpty(c) && StringUtils.isEmpty(d)) {
                //都为空 do something
            }
        }
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月30日