java - 减少 Java 中的 if-else 语句

标签 java if-statement refactoring conditional-statements

我有以下代码:

void f(String t)
{
  if(t.equals("a"))
  {
    someObject.setType(ObjectType.TYPE_A);
  }
 else if(t.equals("b"))
  {
    someObject.setType(ObjectType.TYPE_B);
  }

// 50 more similar code

}

有没有什么简单的方法可以重写 if-else 条件,以免有那么多代码?

最佳答案

你应该使用一些东西来消除 someObject.setType(ObjectType....)) 如果 ObjectType 是一个 enum 的重复,然后在那里编写一个类似于 valueOf 的方法来实现这一点。看看你是否喜欢这种解决方案:

void f(String t) { someObject.setType(ObjectType.byName(t)); }

enum ObjectType {
  TYPE_A, TYPE_B;
  public static ObjectType byName(String name) {
    return valueOf("TYPE_" + name.toUpperCase());
  }
}

关于java - 减少 Java 中的 if-else 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10410729/

相关文章:

java - ORMLite : Internal DAO object is null

java - 无法找到命名空间 ('context' 的 NamespaceHandler)

javascript - Drop down 中的数据绑定(bind)

mysql - 使用 If 语句比较从 MySQL 中提取的数字

java - 如何在Java中执行2个包含相同条件的While循环?

java - 如何在 Jenkins 中使用构建参数编辑 app.properties 文件

java - 如何从 App Engine 数据存储中获取文本?

java - Tomcat 在 webapp 启动期间挂起

javascript - 当需要类似 sleep 的功能时如何重构 javascript 代码?

batch-file - 如何重构充满 GOTO 的 Windows 批处理脚本?