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日

悬赏问题

  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥15 Python3.5 相关代码写作
  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗