我不确定以下哪些代码片段我更喜欢.
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");
}
Run Code Online (Sandbox Code Playgroud)
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
}
Run Code Online (Sandbox Code Playgroud)
我认为B更具可读性.但更像Java的是什么?
Kar*_*cki 10
第二个,if-then-else更具可读性,并在文档https://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html中使用.
这可能取决于项目的代码约定,但应避免深度代码嵌套,因为它不可读.引入一个表面的嵌套if语句而不是if-then-else劝阻.
您的特定示例看起来像前置条件,通常更容易编写Objects.requireNonNull:
Objects.requireNonNull(cond1);
Objects.requireNonNull(cond2);
//Do the good stuff
Run Code Online (Sandbox Code Playgroud)