Java 中 2 个条件的 4 种可能性的最佳写法是什么

what is the best way to write the 4 possibilities of 2 conditions in Java

CONDITION1 和 CONDITION2 是字符串变量,可以是 NULL 或 NON NULL。 举例来说,我有 2 个变量,如 CONDITION1 和 CONDITION2。 如果 CONDITION1 不为 NULL,则调用 METHOD1(),如果它 returns TRUE,则检查 CONDITION2 是否为 NULL,然后调用 METHOD2()。 如果 CONDITION1 为 NULL,则我检查 CONDITION2 是否为 NULL。如果它不是 NULL,那么我调用 METHOD2()。 如果 CONDITION1 不是 NULL,那么我调用 METHOD1() 然后检查 CONDITION2 是否为 NULL。如果它是 NULL 那么我不调用 METHOD2()。

两种方法return 一个布尔值。正确或错误。

  1. 如果其中 None 个为 NULL
  2. 如果条件 1 不为空且条件 2 为空
  3. 如果条件 2 为空且条件 1 不为空
  4. 如果两个条件都为NULL

下面是使用 if else if 语句的代码。

有更好的方法吗?

//Fail// process further代表相同的代码。

       if(CONDITION1 != null && CONDITION2 != null){
            if(METHOD1()){
                if(METHOD2()){
                    // process further
                }else{
                    //Fail
                }
            }else{
                //Fail
            }
        }else if(CONDITION1 != null && CONDITION2 == null){
            if(METHOD1()){
                // process further
            }else{
                //Fail
            }
        }else if(CONDITION1 == null && CONDITION2 != null){
            if(METHOD2()){
                // process further
            }else{
                //Fail
            }
        }else{//Both are NULL
            // process further
        }

只要你所有的 // process further 代表相同的代码,并且你所有的 //Fail 代表相同的代码,正如你所说,那么你所做的就相当于:

if ((CONDITION1==null || METHOD1())
    && (CONDITION2==null || METHOD2())) {
    // process further
} else {
    // fail
}