我想编写干净、快速的代码来评估某些条件,如果条件为真则执行操作并返回该条件值。
到目前为止我有以下选择:
选项 1:
public boolean method() {
if (...condition...) {
action();
return true;
} else {
return false;
}
}
选项 2:
public boolean method() {
boolean actionNecessary = ...condition...;
if (actionNecessary) {
action();
}
return actionNecessary;
}
选项 3:
public boolean method() {
return ifDoReturn(...condition..., () -> {
action();
});
}
使用辅助方法:
public static boolean ifDoReturn(boolean condition, Runnable action) {
if (condition) {
action.run();
}
return condition;
}
第一个选项最长,第二个更短但速度也快,第三个选项最短但很棘手,没有编译器优化也很慢。
感谢您的帮助
最佳答案
“过早的优化是万恶之源。” - Donald Knuth
我相信你想得太多了。 JVM 足够智能,可以处理琐碎的“微优化”。在简单的 if...else 逻辑中,人们通常应该遵循其团队制定的软件开发标准。无论采用何种方法,您都很难找到显着的性能提升。如果经常调用代码,那么即时编译器(“JIT”)无论如何都会将其编译为目标代码。
综上所述,在我看来,选项 #2 是最清楚的。
无论如何,here是对 Java 优化技术的更深入的研究;最重要的是,涵盖何时以及为何进行优化。
关于java if Action 并返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42207361/