我在HashMap中存储了一些类名。当用户提供名称时,该特定的类应该运行。我怎样才能做到这一点?请任何帮助。如何运行从String转换的类?
我在下面做了类似的事,但是我没有发现类没有发现异常。
Map<String,String> ruleMap = new HashMap<String, String>();
ruleMap.put("1", "CalculatorTest");
ruleMap.put("2", "AreaTest")
JUnitCore junit = new JUnitCore();
,并调用方法,
for (Map.Entry<String, String> entry : ruleMap.entrySet())
{
Class c = null;
if(selection.equals(entry.getKey()))
{
try
{
c = Class.forName(entry.getValue());
}
catch (Exception e)
{
e.printStackTrace();
}
junit.run(c);
break;
}
}
当我打电话喜欢它下面是工作的罚款。
junit.run(CalculatorTest.class);
有没有包的类? – 2012-07-23 11:20:42
如果'junit.run(CalculatorTest.class);'正在工作,那么''Class.forName'的结果''''junit.run(c);'应该也能工作。当然,如罗杰指出的那样,班级没有任何包裹。 'Class.forName'不知道调用代码中可能存在的任何'import'语句(当然)。 – 2012-07-23 11:20:53
方面评论:你可以用'String value = ruleMap.get(选择)替换循环+。 if(value!= null){c = Class.forName(value); }' – assylias 2012-07-23 11:23:05