public class IoCContainer {
private Map<String, Object> beans = new ConcurrentHashMap<String, Object>();
public Object getBean(String bean){
return beans.get(bean);
}
public void setBean(Class<?> clazz, String beanId, String... paramBeanId){
Object[] paramValues = new Object[paramBeanId.length];
for(int i=0; i < paramBeanId.length; i++){
paramValues[i] = paramBeanId[i];
}
for(int i=0; i < paramValues.length; i++){
Object bean = null;
for(Constructor<?> constructor : clazz.getConstructors()){
try {
bean = constructor.newInstance(paramValues);
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
if(bean == null){
throw new RuntimeException("找不到合適的構造方法實例化bean");
}
}
}
}