Class.forName异常找不到类,但是参数是包名+类名
public static <T>T newInstance(Class<T> interfaceClass){
try {
//希望我给你一个接口 你给我一个实现类 而且是随时可变的
//目前传进来 UserDao.class
String name = interfaceClass.getSimpleName();
//拿着接口的名字 配置文件找图纸 找具体实现类 全限定名
String className=findClassNameByName(name);
//都获取具体实现类的类名
Class<?> aClass = Class.forName(className);
Object o = aClass.newInstance();
return (T) o;
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
private static String findClassNameByName(String name) throws DocumentException {
//创建解析对象
SAXReader saxReader = new SAXReader();
//给配置文件流
InputStream in = BeanFactory.class.getClassLoader().getResourceAsStream("beans.xml");
//返回doc对象
Document document = saxReader.read(in);
//使用xpath语法 解析
Element element = (Element) document.selectSingleNode("//bean[@id='" + name + "']");
//返回需要的元素
return element.attributeValue("class");
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)