java 如果行动和 return
java if action and return
我想编写简洁快速的代码来评估某些条件,如果条件为真并 return 该条件值则执行操作。
目前我有以下选项:
选项 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;
}
第一个选项最长,第二个选项较短但也很快,第三个选项最短但比较棘手,没有编译器优化也很慢。
感谢您的帮助
"Premature optimization is the root of all evil." - 唐纳德·高德纳
我相信你想多了。 JVM 足够聪明,可以处理琐碎的事情 "micro-optimizations"。在简单的 if...else
逻辑中,通常应该遵循其团队制定的软件开发标准。无论采用何种方法,您都会 hard-pressed 发现显着的性能提升。如果经常调用代码,Just-in-Time 编译器 ("JIT") 无论如何都会将其编译为目标代码。
综上所述,在我看来,选项 #2 是最清楚的。
就其价值而言,here 是对 Java 优化技术的更深入研究;最重要的是,涵盖了何时以及为何优化。
我想编写简洁快速的代码来评估某些条件,如果条件为真并 return 该条件值则执行操作。
目前我有以下选项:
选项 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;
}
第一个选项最长,第二个选项较短但也很快,第三个选项最短但比较棘手,没有编译器优化也很慢。
感谢您的帮助
"Premature optimization is the root of all evil." - 唐纳德·高德纳
我相信你想多了。 JVM 足够聪明,可以处理琐碎的事情 "micro-optimizations"。在简单的 if...else
逻辑中,通常应该遵循其团队制定的软件开发标准。无论采用何种方法,您都会 hard-pressed 发现显着的性能提升。如果经常调用代码,Just-in-Time 编译器 ("JIT") 无论如何都会将其编译为目标代码。
综上所述,在我看来,选项 #2 是最清楚的。
就其价值而言,here 是对 Java 优化技术的更深入研究;最重要的是,涵盖了何时以及为何优化。