我有一个系统,我从外部库接收一个字符串,需要根据该字符串选择一个特定的类。不幸的是,我无法控制收到的字符串。在 Java 中是否有比
更面向对象的方式来做到这一点if(string.equals(CASE1)){
return new CaseOneObject();
} else if (string.equals(CASE2)){
return new CaseTwoObject();
} else if
...
每个字符串对应一个类,但没有可靠的方法从字符串派生类名。
最佳答案
或者将名称或类放在映射中,然后使用字符串作为键来选择它们。
Map<String, Class<?>> classes = new HashMap<String, Class<?>>;
Class<?> aClass = com.github.my.overlong.package.SomeClass.class;
classes.put("silly_string_a", aClass);
/* .... */
关于java - 是否有比使用 if-else 语句(或 switch)更面向对象的方法来选择基于字符串的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5749093/