为什么当从哈希映射检索到的类名(带包)通过 Class.forName() 时我无法获取类



我有一个包含几个东西的HashMap(HashMap的内容如下所示(。当我将依赖类名存储在变量中(假设依赖类名(并将其作为参数发送到Class.forName()时,它会显示ClassNotFoundException

但是,如果我在双引号中设置相同的类名作为Class.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();
}
dependencyClassName1= dao.AcountMasterDAO

您在值中有一个前导空格。

最新更新