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;

}

}

java通过反射调用方法_Java_通过反射调用类中的方法相关推荐

  1. python方法定义..._解析Python类中的方法定义

    最近在学习类过程中,绑定方法这个概念没有理解透彻,所以在网上找了很多相关博客.文章研究到底是怎么一回事.因为有的文章所陈述与我在python3.5版本实际实验中有些出入,所以经过实践后总结出以下结论. ...

  2. Python 学习笔记 系统模块 面对对象思想 类和对象 类中的方法与对象 构造函数和析构函数

    一.系统模块: UTC:国际标准时间, 格林尼治天文时间,UTC+8 时间戳:指定时间距离1970.1.1 00:00:00的秒数 time:时间 datetime:日期 calendar:万年历 o ...

  3. Java反射机制demo(五)—获得并调用一个类中的方法

    这个demo在使用反射机制操作属性之前,主要原因是因为在.class文件字节码中,方法排在属性的前面. 1,获得一个类中的方法 先看一下方法和运行结果.获取所有的方法使用Class类中getMetho ...

  4. 反射_通过反射调用类中指定方法、属性

    一.调用指定方法 通过反射,调用类中的方法,通过Method类完成.步骤: 1.通过Class类的getMethod(String name,Class.......parameterTypes)方法 ...

  5. JSP中调用java类中的方法

    JSP中调用java类中的方法 1.新建一个项目,在src文件夹下添加一个包:如:test 2.再在包中添加一个类:如 package test; public class conDatabase { ...

  6. java 引用其他类_java如何调用其他类中的方法?

    1.java如何调用其他类中的方法 java调用另一个类的方法: java类有两种方法一种是类方法就是用static修饰的,一种是实例方法,就是没有static修饰的方法.类方法可以同时类名,方法名的 ...

  7. thymeleaf 调用java,thymeleaf模板引擎调用java类中的方法(附源码)

    前言 由于开源了项目的缘故,很多使用了My Blog项目的朋友遇到问题也都会联系我去解决,有的是把问题留在项目的issue里提出,有的是在我的私人博客里留言,还有的则是直接添加我的qq来找我讲自己遇到 ...

  8. Java中divide用法_java的BIgInteger类中divideAndRemainder方法怎么用?

    展开全部 Java的BigInteger类中e68a8462616964757a686964616f31333433633436divideAndRemainder方法的用法是,先建一个BigInte ...

  9. kotlin调用类中的方法_一种轻松的方法来测试Kotlin中令人沮丧的静态方法调用

    kotlin调用类中的方法 by Oleksii Fedorov 通过Oleksii Fedorov 一种轻松的方法来测试Kotlin中令人沮丧的静态方法调用 (A stress-free way t ...

  10. Spring - 同一个类中的方法互相调用,注解失效问题的分析和解决(转)

    Spring - 同一个类中的方法互相调用,注解失效问题的分析和解决(转) 参考文章: (1)Spring - 同一个类中的方法互相调用,注解失效问题的分析和解决(转) (2)https://www. ...

最新文章

  1. TRMF 辅助论文:最小二乘法复现TRMF
  2. vim 粘贴代码格式
  3. 入门案例Maven搭建SpringBoot工程
  4. mysql开启yum search pt-mysql_Centos使用MySQL工具Percona Toolkit
  5. node mysql await_javascript – node.js async / await与MySQL一起使...
  6. Android系统(274)---如何预置APK
  7. Oracle11g客户端安装配置
  8. anaconda pycharm_搭建 Python 高效开发环境: Pycharm + Anaconda
  9. linux满负荷运行tail,linux内核tcp调优规范与方案
  10. EXCEL中CONCATENATE()函数的使用
  11. 天津检验检疫局完成核心业务容灾备份系统建设
  12. 两年经验,尽然斩获多家巨头offer,如:蚂蚁、头条、PingCAP~
  13. Java进阶:SpringMVC中通过监听器将Spring上下文对象放置到servletContext中,方便其他地方使用
  14. JQuery-表单验证
  15. 绘制计算机网络拓扑图,绘制网络拓扑图1.ppt
  16. pc上最好用的pdf阅读工具(PDF Xchange Viewer)
  17. mysql 全文索引 使用_MySql全文索引
  18. java把一个对象赋值给另一个对象
  19. 安卓adb问题处理总结
  20. 洛谷刷题C语言:数字反转、再分肥皂水、三角形面积、Apples Prologue/苹果和虫子、数的性质

热门文章

  1. python常见错误 TypeError: 'NoneType' object is not iterable
  2. ubuntu右键点击没有新建文档_苹果鼠标右键无法新建txt文档?iRightMouse :超级右键鼠标辅助工具...
  3. VUE 百度离线地图的下载与使用
  4. window.XMLHttpRequest
  5. 51单片机基础之蜂鸣器
  6. 深度学习常见的专业术语
  7. 网友自曝:编程从入门到放弃!方法比选择更重要!
  8. BZOJ 1202-狡猾的商人(带权并查集)
  9. oracle xe 安装配置,(转)oracle 10g xe 我的安装实践及简单配置过程
  10. 基于stm32+LM2904+esp8266的噪声预警系统