//设计一个方法 获取任何一个类的对象
// 返回值(泛型) 参数String 表示类名
public static <T>T getBean(String className){ //传递一个类全名 返回值是T类型的 <T>表示规定类型的意思
//你用什么类型接,我就把他当做T类型
T obj = null;
try {
//1.直接去BeanBox里面获取
obj = (T)beanBox.get(className); //如果类名字之前创建过对象,就把该对象给你
//2.如果obj为null 证明之前没有创建过这个这个对象
if (obj == null){
//3.通过类名字获取class
Class clazz = Class.forName(className);
//4.通过反射产生一个对象
obj = (T)clazz.getDeclaredConstructor().newInstance(); //每次创建都要调用该方法创建对象,还是很耗时
//5.新的对象存入集合 没有就放在集合里
MySpring.beanBox.put(className,obj);
}
} catch (Exception e) {
e.printStackTrace();
}
return obj;
}