我正在维护由不再维护此产品的供应商编写的代码库(旧的Java 3)。
我经常遇到这样的事情:
private boolean doSomething() {
boolean success = false;
// do stuff
if (/*some stuff*/) {
success = true;
}
return success;
}
public void doStuff() {
boolean ok = (boolean) doSomething();
if (ok) {
// do stuff
}
}
因此,很明显,他们正在尝试通过传回一个指示状态(验证)的布尔值来确定方法的成功/失败...我个人认为这是一种不好的做法,我宁愿将异常冒泡传递给调用者,但这仅仅是我自己。
我很困惑的部分,为什么这个供应商/没有不断地将布尔返回值显式地转换为布尔值?这是多余的,肯定会在运行时造成一些开销,不是吗?我一直都在做错事吗? -还是这只是我不应该关注的风格问题?
最佳答案
它不会在运行时产生开销,因为编译器可以进行强制类型转换。
但这是不必要的。所有你需要的是
if (doSomething()) {
// do stuff
}
这是某些人的特质怪异,他们不太了解该语言,也没有阅读别人的代码来了解什么是好的样式。
关于java - 明确的返回,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20666379/