当我看到一个方法中包含大量 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/