java - 如果没有 "if"大小写匹配,则在开头设置默认值或显式设置

标签 java

<分区>

我有以下代码来获取对象的名称。

public String getName(Object... manyVarsToCreateObjectName) {
  String ObjectName = defaultValue;
    if(something...) {
      ObjectName = "object1"
    } else {
      if(somethingElse...) {
      ObjectName = "object2"
    }
  } 

  return ObjectName;
 } 

影响最终对象名称的 if 情况有很多,还有一个在开头设置的默认值,如果没有 if 子句匹配则返回。我的问题是:

  1. 我应该在开头设置默认值还是在没有大小写匹配的情况下明确设置它。
  2. 是在找到匹配项后立即返回 objectName 更好,还是将其分配给一个值并在最后返回它更好。

最佳答案

我喜欢在发现不满足先决条件或有结果时立即离开方法,例如:

public String getName(Object... manyVarsToCreateObjectName) {
    if (!myImportedAssumption) {
        return null;    // or anything signalling invalidity (or even throw)
    }

    if (something...) {
        return "object1";
    }

    if (something else...) {
        return "object2";
    }

    // ...

    return defaultValue;
}

对我来说,这是最清晰的结构。调试时,您不必担心方法的其余部分是否发生任何其他情况,即使它很长。理解起来很容易,因为您甚至不需要 else 逻辑。最后同样重要的是,它鼓励清晰的设计:该方法只做一件事,没有额外的计算或弄乱由 if 序列确定的值。如果可能,我尝试使用 switch,使用相同的提前退出样式。

关于java - 如果没有 "if"大小写匹配,则在开头设置默认值或显式设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31113280/

相关文章:

java - 从 Hadoop YARN 启动一个 java 应用程序

java - 如何使用 kotlin 程序中的 java 库?

java - ANDROID:使用轨迹球和触摸时突出显示/选择

java - 检查点是否在三角形内的性能(3D)

java - 如何在 Spring REST 的一个参数中传递键值

java - 如何减小矩形的高度? (Java、AWT)

java - 如何在spring cache java中配置多个缓存管理器

java - 使用 FileWriter 创建文件并写入文件时出现 IO 异常

java - 确保 Java 中的通用通配符匹配

java - 无法在 Activity 之间传递数据。数据为空