java if操作和返回
我想编写干净、快速的代码来评估某些条件,如果条件为true,则执行操作并返回该条件值 到目前为止,我有以下选择: 选项1:java if操作和返回,java,if-statement,return,action,Java,If Statement,Return,Action,我想编写干净、快速的代码来评估某些条件,如果条件为true,则执行操作并返回该条件值 到目前为止,我有以下选择: 选项1: public boolean method() { if (...condition...) { action(); return true; } else { return false; } } public boolean method() { boolean actionNecessar
public boolean method() {
if (...condition...) {
action();
return true;
} else {
return false;
}
}
public boolean method() {
boolean actionNecessary = ...condition...;
if (actionNecessary) {
action();
}
return actionNecessary;
}
public boolean method() {
return ifDoReturn(...condition..., () -> {
action();
});
}
选项2:
public boolean method() {
if (...condition...) {
action();
return true;
} else {
return false;
}
}
public boolean method() {
boolean actionNecessary = ...condition...;
if (actionNecessary) {
action();
}
return actionNecessary;
}
public boolean method() {
return ifDoReturn(...condition..., () -> {
action();
});
}
选项3:
public boolean method() {
if (...condition...) {
action();
return true;
} else {
return false;
}
}
public boolean method() {
boolean actionNecessary = ...condition...;
if (actionNecessary) {
action();
}
return actionNecessary;
}
public boolean method() {
return ifDoReturn(...condition..., () -> {
action();
});
}
使用助手方法:
第一个选项最长,第二个选项较短,速度也较快,第三个选项最短,但很复杂,没有编译器优化,速度也较慢
感谢您的帮助“过早优化是万恶之源。”-Donald Knuth
我相信你想得太多了。JVM足够聪明,可以处理琐碎的“微观优化”。在简单的if…else
逻辑中,通常应该遵循团队制定的软件开发标准。无论采用何种方法,您都很难找到显著的性能提升。如果代码经常被调用,那么即时编译器(“JIT”)无论如何都会将其编译成目标代码
所有这些都表明,在我看来,选择2是最明确的
值得一提的是,深入研究Java优化技术;最重要的是,涵盖优化的时间和原因取决于许多因素。贵公司是否有标准可循?谁来维持?这是一个一次性的计划吗?没有好的回应,因为它是一个个案的基础上。第二个是容易和可读的。使用它。是的,但可能适当的名称帮助方法可以大大帮助。我会倾向于第二个选项,但可以接受第一个选项。我认为最后一个选项不像其他两个选项一样可读,因此不会认为它是一个好的替代品。不要使简单的事情过于复杂(适用于第三个解决方案),第一个方法有多余的其他,因为它可以很容易地改写为第二个方法,因此我会选择第二个方法。如果您对可读代码感兴趣,请参阅《干净代码》一书。感谢大家投票支持#2。无论如何,我缺少了更多的语法糖分,无法在Java中很好地表达这种常见模式。我接受这个答案,因为这是唯一一个作为答案写的回答:)。请阅读Joshua Bloch的《有效Java》和Robert Martin的《干净代码》。大多数值得称道的Java团队都应该遵循这些经验法则。