Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java if操作和返回_Java_If Statement_Return_Action - Fatal编程技术网

java if操作和返回

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

我想编写干净、快速的代码来评估某些条件,如果条件为true,则执行操作并返回该条件值

到目前为止,我有以下选择:

选项1:

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团队都应该遵循这些经验法则。