Java 我还写了:或者您可以保存类而不是新的MyObject2(),并创建新实例。 if(string.equals(CASE1)){ return new CaseOneObject(); } else if (string.equals(CASE2)){
Java 我还写了:或者您可以保存类而不是新的MyObject2(),并创建新实例。 if(string.equals(CASE1)){ return new CaseOneObject(); } else if (string.equals(CASE2)){ ,java,oop,Java,Oop,我还写了:或者您可以保存类而不是新的MyObject2(),并创建新实例。 if(string.equals(CASE1)){ return new CaseOneObject(); } else if (string.equals(CASE2)){ return new CaseTwoObject(); } else if ... map.put ("case1", "class1") .... Class.forName(map.get("case1")).newInstance
我还写了:
或者您可以保存类而不是新的MyObject2(),并创建新实例
。
if(string.equals(CASE1)){
return new CaseOneObject();
} else if (string.equals(CASE2)){
return new CaseTwoObject();
} else if
...
map.put ("case1", "class1")
....
Class.forName(map.get("case1")).newInstance();
Map<String, Class<?>> classes = new HashMap<String, Class<?>>;
Class<?> aClass = com.github.my.overlong.package.SomeClass.class;
classes.put("silly_string_a", aClass);
/* .... */
Map<String,Object> map = new HashMap<String,Object>();
map.put("SomeString",new MyObject());
map.put("SomeString2",new MyObject2());
return map.get(myString);
static Map<String, Class<?>> classMap = new HashMap<String, Class<?>>();
static {
classMap.put("case1", CaseOneObject.class);
classMap.put("case2", CaseTwoObject.class);
}
Class<?> clazz = classMap.get(string);
if (clazz != null) {
return clazz.newInstance();
}
String s = ...
switch(s) {
case "foo":
processFoo(s);
break;
}
String s = ...
switch(s) {
case "quux":
processQuux(s);
// fall-through
case "foo":
case "bar":
processFooOrBar(s);
break;
case "baz":
processBaz(s);
// fall-through
default:
processDefault(s);
break;
}