package com.web.common.utility.reflector;

import java.io.Serializable;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;

/***/ /**
*@comany阿斯达克(上海)深圳分公司
*@authorsteven.wu
*@date2008-4-21
*@description利用反射动态加载类,并调用其方法执行。
*/
public class ReflectorFactory implements Serializable ... {
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);
}
}

Java利用反射动态加载类实战相关推荐

  1. Java运行时动态加载类之ClassLoader加载class及其依赖jar包

    需求场景是:通过ClassLoader动态加载外部class文件,class文件又依赖某个具体jar包,需要动态加载jar包,采用URLClassLoader. 1.xml配置文件 <?xml ...

  2. Java运行时动态加载类之ClassLoader

    需求场景:动态加载类ClassLoaderd,在xml文件中配置加载类名称和方法,: 一.准备 1)在D:\\tmp\\目录下配置a.xml文件: <?xml version="1.0 ...

  3. Java运行时动态加载类之URLClassLoader

    需求场景:通过URLClassLoader从jar文件中加载类并创建实例,可实现运行时动态加载 1.要加载的jar: 1)接口类IC package cn.fjs;public interface I ...

  4. Java运行时动态加载类之Class.forName

    需求场景:通过Class.forName加载类并创建实例. 1.接口类: package cn.fjs;public interface IC {public void action(); } 2.实 ...

  5. Java运行时动态加载类之ClassLoader方法带参数

    和该文环境一样http://blog.csdn.net/fjssharpsword/article/details/64922083 不同的是,在load出的class调用具体方法时传递参数. 1.U ...

  6. Java动态加载类(对反射的基本理解)

    目录 基本概念 演示 基本概念 这里演示下Java的动态加载类.因为在编译的时候,加载类是静态加载,运行时加载是动态加载. 在此我对反射有了如下的理解: 如果有一个class A,可以使用new A( ...

  7. Java反射-静态/动态加载类

    title: Java反射-静态/动态加载类 date: 2019-05-28 18:50:00Java反射-静态/动态加载类 Class 类是对象,是java.lang.Class类的实例对象.任何 ...

  8. Java 动态加载类

    Class.forName("类的全称"); 不仅表示类的类类型,还代表了动态加载类 请大家区分编译.运行 编译时刻加载类时静态加载类.运行时刻加载类时动态加载类 编写一个Offi ...

  9. java动态加载类 框架_java运用RMI框架类的动态加载不成功

    最近在看<java网络编程精解>,第11章中用RMI动态加载类,可怎么试都不成功,求大神解答 1. 我先在C盘下启动了rmiregistry注册表,如果部署成功注册表应该会从codebas ...

最新文章

  1. 2022-2028年中国汽车橡胶件行业市场调查研究及前瞻分析报告
  2. 我看过的编译原理方面的好文章
  3. python大牛自学心得_自学Python编程的第十天(希望有IT大牛看见的指点小弟我,万分感谢)---------来自苦逼的转行人...
  4. React中父子组件之间的通信
  5. Oracle dataGuard专题:Rman通过duplicate创建standby
  6. 【BZOJ】1901: Zju2112 Dynamic Rankings(区间第k小+树状数组套主席树)
  7. python全局解释器锁 tensorflow_Python即将出局?Julia和Swift能取而代之吗?
  8. Atom 和 Sublime Text 相比哪个好?
  9. 多屏显示 全屏后在副显示器_多屏生产力有多重要?联想ThinkVision思逸14显示器...
  10. php项目网页音乐播放器插件,10个免费开源的JS音乐播放器插件
  11. MySQL存储过程(二)——存储过程基本使用
  12. c#带参数和返回值的函数 开启线程调用的方法
  13. R语言——RStudio下载R包时总是下载不成功?解决方案
  14. 哈密顿图 哈密顿回路 哈密顿通路(Hamilton)
  15. BOM物料管理在PLM系统中的应用
  16. 汽车如何打蜡 汽车打蜡有什么要注意的地方
  17. 微信公众号(移动端网页)必备的调试神器
  18. 虚拟化技术——VLAN策略
  19. 如何用css弄个七彩,CSS实现文字七彩呼吸灯动画
  20. 【CodeForces 1260E --- Tournament】

热门文章

  1. 与君欢喜城,暖色度余生——CSDN
  2. 在python3.6环境下使用cxfreeze打包程序
  3. 最优控制理论(一)基本概念
  4. Java抽象类中,普通方法依赖抽象方法时,抽象方法有入参的实现方法
  5. php base64_decode与java base64解密结果不匹配问题
  6. 华氏温度转化为摄氏度
  7. 宽带开启ipv6的方法(包含光猫改桥接和光猫改桥接后访问其管理界面以及路由器拨号)
  8. 使用chrony做时间同步
  9. GEE Landsat8去云之后填补的NDVI
  10. ZF 0017-192 0501 331 622