我在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