java - 在 if 中返回值的优雅方式

标签 java if-statement

假设您想要编写一个简单的方法,该方法采用名为“foo”的字符串参数。如果 foo 等于“toto”,则该方法应返回 int“1”,在其他情况下,该方法应返回“2”。在不使用三元表达式的情况下编写此方法的最佳方法是什么?

我有几种解决方案,但无法自行决定哪一个是 Java 中最好的。

解决方案1:

public int method1(String foo){
    if("toto".equals(foo)){
       return 1;
    }
    return 2;
}

解决方案 2:

public int method2(String foo){
    if("toto".equals(foo)){
       return 1;
    } else {
        return 2;
    }
}

解决方案 3:

public int method3(String foo){
    int result = 2;
    if("toto".equals(foo)){
       result = 1;
    }
    return result;
}

解决方案 4:

public int method4(String foo){
    int result = 0;
    if("toto".equals(foo)){
       result = 1;
    } else {
       result = 2;
    }
    return result;
}

还有其他想法吗?

请记住,我搜索的是没有三元条件的解决方案。

谢谢

编辑:我知道以前的所有方法都给出了预期的结果,所以它们都可以使用。我想知道但在我最初的问题中不清楚的是:Java 社区是否有关于这种情况的某种标准? 例如,我知道括号的位置有一个标准:你可以将它们放在 if 语句后面的一行,但大多数人在 Java 中不会这样做。

我知道三元表达式可能是最好的。但是,正如您可以想象的那样,我的“真实”方法比这更复杂并且不能使用三元。我在这里提出的问题只是一个简化,而不是完整的、真正的问题。

最佳答案

我认为,最好的就是最具可读性的

 public int method(String foo){
   return "toto".equals(foo)?1:2;
 }

关于java - 在 if 中返回值的优雅方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39998655/

相关文章:

java - 在java中,如何将日志消息与多个字符串模式相匹配

java - 复杂 Java 模型的 JUnit 测试

java - ObservableList 抛出 NullPointerException

c - 删除字符串中的一个字符?

java - 如何更新 Android 中的 Activity ?

如果小于则 JavaScript 不工作

c# - if 子句使用?

c - 难以理解循环

python - Python 中的 if 和 else 条件问题

java.lang.StringIndexOutOfBoundsException : index=0 length=0 in get sqlite database 异常