java通过反射调用方法_Java_通过反射调用类中的方法

packagecom.lkb.autoCode.util;importcom.lkb.autoCode.constant.AutoCodeConstant;importjava.lang.reflect.Method;/*** DefultClassLoader 默认的类加载器

*

*@authorLilin

* @date 2016/5/24*/

public class DefultClassLoader{private Class> classType = null;private T reflectClass = null;/***@paramfullClassName 全包路径

*@throwsException*/

public DefultClassLoader(String fullClassName) throwsException {

classType=getClassType(fullClassName);

}/***@paramtype 模板类型

*@paramprovinceCode 省Id

*@paramcityCode 市Id

*@paramclassName 类名称

*@throwsException*/

public DefultClassLoader(String type, String provinceCode, String cityCode, String className) throwsException {

classType=getClassType(type, provinceCode, cityCode, className);

}/*** 获取classType

*

*@paramtype

*@paramprovinceCode

*@paramcityCode

*@return*@throwsException*/

public Class> getClassType(String type, String provinceCode, String cityCode, String suffix) throwsException {

Class> classType = Class.forName(AutoCodeConstant.BASE_SB_PACKAGE + "." + type + "." + provinceCode + "." + cityCode +suffix);returnclassType;

}/*** 获取base

*

*@paramfullClassName

*@return*@throwsException*/

public Class> getClassType(String fullClassName) throwsException {

Class> classType =Class.forName(fullClassName);returnclassType;

}/*** 获取对象client

*@return*@throwsException*/

public T getClassInstance() throwsException {return getClassInstance(null, null);

}/*** 获取对象client

*

*@paramclasses

*@paramobjects

*@return*@throwsException*/

public T getClassInstance(Class[] classes, Object[] objects) throwsException {

T client=(T) classType.getConstructor(classes).newInstance(objects);returnclient;

}/*** 执行不带参数的方法(忽略)

*

*@paramclassType

*@paraminstance

*@parammethod

*@return*@throwsException*/

public Object implementMethod(Class> classType, Object instance, String method) throwsException {return implementMethod(classType, instance, method, null, null);

}/*** 执行方法(忽略)

*

*@paramclassType

*@paraminstance

*@parammethod

*@paramparamTypes

*@paramparams

*@return*@throwsException*/

public Object implementMethod(Class> classType, Object instance, String method, Class[] paramTypes, Object[] params) throwsException {

Method getStrMethod;

Object result;if (paramTypes == null) {

getStrMethod=classType.getMethod(method);

result=getStrMethod.invoke(instance);

}else{

getStrMethod=classType.getMethod(method, paramTypes);

result=getStrMethod.invoke(instance, params);

}returnresult;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值