如果我需要返回一个基于字符串实例化的类(例如,从 JSON 创建逻辑),应该如何编写?
我最初的想法是一个 switch,但在 Android 框架的 Java 版本中,看起来 switch 语句不允许使用字符串。
接下来的想法是 HashMap:
private HashMap<String, Class> classMap = new HashMap<String, Class>();
classMap.put("someClass", SomeClass.class)?
// ... etc
String someString = jsonObject.getString("someProperty");
Class classRef = classMap.get(someString);
SomeSuperClass classInstance = new classRef();
这是行不通的。我宁愿不if/else
列出一长串可能性。
只需使用Class<?> clazz = Class.forName("com.yourpackage.YourClass")
然后实例化它:clazz.newInstance();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)