Non-static method ‘getBean(java.lang.String)’ cannot be referenced from a static context报错
IAccountDao accountDao = (IAccountDao)BeanFactory.getBean("AccountDao");
public void saveAccount() {
accountDao.saveAccount();
}
问题所在
不能直接使用类名调用方法
解决方法一
实例化对象再加载方法
BeanFactory bf = new BeanFactory();
IAccountDao accountDao = (IAccountDao)bf.getBean("AccountDao");
public void saveAccount() {
accountDao.saveAccount();
}
解决方法二
将方法静态化
public static Object getBean(String beanName){
Object bean = null;
try {
String beanPath = props.getProperty(beanName);
bean = Class.forName(beanPath).newInstance();
}catch (Exception e){
e.printStackTrace();
}
System.out.println(bean);
return bean;
}