java - 如何更改 Java 中应返回类的大量 if/else

标签 java if-statement optimization

当我看到一个方法中包含大量 if/else 语句时,我的眼睛会流血。 我想以某种方式解决这个问题。 方法是:

    private Class getMapType(String header) {
    if (header.equals(Bean01.getHeader())) {
        return Bean01.class;
    } else if (header.equals(Bean02.getHeader())) {
        return Bean02.class;
    } else if (header.equals(Bean03.getHeader())) {
        return Bean03.class;
    } else if (header.equals(Bean04.getHeader())) {
        return Bean04.class;
    } else
        logger.log(Logger.FATAL, "File does not exist");
    return null;
}

getHeader() 方法对于每个类都是不同的。

那么,我该如何重做呢?

最佳答案

一种方法是使用静态最终 map

private static final Map<String, Class> TYPE_MAPPING = new ImmutableMap.Builder()
  .put("Bean01", Bean01.class)
  .put("Bean02", Bean02.class)
  .put("Bean03", Bean03.class)
  .build();

private Class getMapType(String header) {
  return TYPE_MAPPING.get(header);
}

关于java - 如何更改 Java 中应返回类的大量 if/else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45458521/

相关文章:

java - 在某些情况下处理 RuntimeExceptions 有效吗?

java - 如何在Tomcat 7上部署多个应用

mysql - 带条件的 CASE 语句

if-statement - 什么是更快?一个循环或多个 if 条件

c# - 优化基本 XNA 引擎中的绘图调用

python - scipy.optimize.minimize 约束优化的替代方案?

java - Apache Spark : Classloader cannot find classDef in the jar

ios - 用于匹配 String 的子字符串的 Swift switch 语句

java - 有没有办法通过方法回调在代码中捕获 Java 中的对象分配?

java - GUI学生申请表