packagecom.web.common.utility.reflector;importjava.io.Serializable;importjava.lang.reflect.Constructor;importjava.lang.reflect.Method;/***//***@comany阿斯达克(上海)深圳分公司*@authorsteven.wu*@date2008-4-21*@description利用反射动态加载类,并调用其方法执行。*/publicclassReflectorFactoryimplementsSerializable...{publicReflectorFactory()...{//TODOAuto-generatedconstructorstub}publicObjectnewInstance(StringclassName)throwsException...{Classc=Class.forName(className);returnc.newInstance();}publicObjectnewInstance(StringclassName,Object[]args)throwsException...{Classc=Class.forName(className);Class[]argsClass=newClass[args.length];for(inti=0,j=args.length;i<j;i++)...{argsClass[i]=args[i].getClass();}Constructorcons=c.getConstructor(argsClass);returncons.newInstance(args);}//判断是否为某个类的实例publicbooleanisInstance(Objectobj,Classcls)...{returncls.isInstance(obj);}//执行无参数方法.publicObjectinvokeMethod(Objecto,StringmethodName)throwsException...{Classc=o.getClass();Methodmethod=c.getDeclaredMethod(methodName);returnmethod.invoke(o);}//执行有参数方法.publicObjectinvokeMethod(Objecto,StringmethodName,Object[]args)throwsException...{Classc=o.getClass();Class[]argsClass=newClass[args.length];for(inti=0,j=args.length;i<j;i++)...{argsClass[i]=args[i].getClass();}Methodmethod=c.getMethod(methodName,argsClass);returnmethod.invoke(o,args);}}