首页 > 解决方案 > 简化具有多个条件的 if 语句

问题描述

我坚持简化这样的 if 语句。我的项目中的 if 语句看起来有点像这样,但有点复杂。我有更多带有多个 OR 条件的 if 和 if else 条件。

private int testMethod(int a, char b, String s, float f, double d, TestClass testClass){
    if (a == 2 || s.equals("testString") || f == 5 || d == 4 || testClass.getName().equals("testName")){
        return 1;
    }else if (a == 3 || f == 10 || d == 1){
        return 2;
    }else {
        return 3;
    }
}

有没有办法简化这样的 if 语句?谢谢!

标签: java

解决方案


如果你可以简化这个,你可以试试这个。但我认为你的代码需要重构:)

private int testMethod(int a, char b, String s, float f, double d, TestClass testClass){
    return isaBoolean(a, s, f, d, testClass) ? 1 : isaBoolean(a, f, d) ? 2 : 3;
}

private boolean isaBoolean(int a, float f, double d) {
    return a == 3 || f == 10 || d == 1;
}

private boolean isaBoolean(int a, String s, float f, double d, TestClass testClass) {
    return a == 2 || s.equals("testString") || f == 5 || d == 4 || testClass.getName().equals("testName");
}

推荐阅读