我不确定我应该选择以下哪些代码片段.
A)嵌套
if(cond1 != null) { if(cond2 != null) { //Do the good stuff here } else { System.out.println("Sorry cond2 was null"); } } else { System.out.println("Sorry cond1 was null"); }
B)平坦
if(cond1 == null) { System.out.println("Sorry cond1 was null"); } else if(cond2 == null) { System.out.println("Sorry cond2 was null"); } else { //Do the good stuff }
我认为B更具可读性.但更像Java的是什么?
中更易读和使用.
这可能取决于项目的代码约定,但应避免深度代码嵌套,因为它不可读.不鼓励引入表面嵌套的if语句而不是if-then-else.
您的特定示例看起来像前提条件,通常使用
Objects.requireNonNull
更容易编写:
Objects.requireNonNull(cond1); Objects.requireNonNull(cond2); //Do the good stuff
翻译自:https://stackoverflow.com/questions/49529755/java-nested-if-statment-vs-if-else