有更好的方法来编写下面的代码吗?我正在检查一个对象是否为null,如果为null,则返回false,否则我将检查另一个变量,并根据该变量选择要执行的操作。
private boolean myFunction(MyObjectType myObject) {
if (myObject == null) {
return false;
} else if (myInstanceVariable.myMethod()) {
// Do something then return
System.out.println(myObject.getSomeValue());
return true;
} else {
return false;
}
}
最好是使用最后的else语句,还是将return false
(以及我可能在它之前放入最后的else { }
块中的任何其他代码)移到if语句之外?我可以看到将它移到外部更安全(代码行更少),这样函数就可以100%保证返回。这可能取决于编译器的行为吗?
private boolean myFunction(MyObjectType myObject) {
if (myObject == null) {
...
} else if (myVariable.myMethod()) {
...
}
return false;
}
最好在任何if语句之外的末尾有最后一个return语句。最后我还记得,如果你所有的返回都在if语句中,你会得到一个编译错误,说明这个方法没有返回,或者可能不会总是达到返回。
对我来说,这更好:
private boolean myFunction(MyObjectType myObject) {
if (myObject == null) {
return false;
}
if (myInstanceVariable.myMethod()) {
// Do something then return
System.out.println(myObject.getSomeValue());
return true;
}
return false;
}
如果您从if
块内部返回,则不需要else
块。我发现它更好,因为这种看起来不那么复杂的方法可以更好地表达逻辑的真正复杂性。更少的大括号和更少的缩进使它更容易理解,至少对我来说是这样