我有一个HashMap,它包含一些内容(HashMap的内容如下所示)。当我将dependencyClassName存储在变量中(假设dependencyClassName)并将其作为参数发送到
Class.forName()
,它显示
ClassNotFoundException
。
但如果我将相同的类名设置为
班forName()
在双引号中,它可以很好地工作,而不是从HashMap中获取它。
我不明白这里有什么问题。我已经在下面发布了代码。
HashMap<String,String> dependency = (HashMap<String, String>) map.get("dependency"); //It contains ({dependencyClassName2= dao.TransactionDAO, dependencyClassName1= dao.AcountMasterDAO, dependencyType1=dao.IAcountMaster, dependencyType2=dao.ITransaction})
ArrayList<Object> className = new ArrayList<Object>();
String dependencyClassName = dependency.get("dependencyClassName1");
try {
System.out.println("in factory dependency: " + dependencyClassName); //dependencyClassName = "dao.AcountMasterDAO"
Class cls = Class.forName(dependencyClassName);//It gives ClassNotFoundException
Class cls = Class.forName("dao.AcountMasterDAO");//It works fine
}
catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}