package Reflect;
/*如何编写工具类:
* 办法一:
* 1.把工具办法做成非static办法,
* 2.把工具类做成单例的。
* 那末要调用工具办法,必需先得到工具类。再调用办法
* 办法二:
* 1.把工具办法做成static办法
* 2.把工具类所有结构器全体私有化,或把工具加上abstract的。
* 这么做的目标就是为了全体是类去调用工具办法。
*
* */
//依据反射的对象工厂,专门用来生成对象。为了使其他办法类也能够应用该办法,特地将该办法抽取到该类中。
//单例模式:Enum
public enum BeanFactory {
INSTANCE;
public <T>T getBean(String className,Class<T> checkType){
try {
Class<T> clz=(Class<T>) Class.forName(className);
Object obj = clz.newInstance();
//须要检讨checkedType是不是是obj的字节码对象。
if(!checkType.isInstance(obj)){
throw new IllegalArgumentException("对象和类型不兼容");
}
return (T)obj;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
package Reflect;
/*如何编写工具类:
* 办法一:
* 1.把工具办