Java语言允许通过程序化的方式间接对Class进行操作,Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数、属性和方法等。Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能,这就为使用程序化方式操作Class对象开辟了途径。
————stamen
1.反射的调用
- 得到要调用类的class对象
(1)Class.forName(className)
(2)String.class
(3)object.getClass - 得到要调用的类中的方法(Method)
getdeclaredMethods - 实例化class对象
Class.newInstance - 方法调用(invoke)
Method.invoke(newobject,new Object[]{parmalist}
2.反射的作用
- 开发各种通用框架
为了使框架通用化,使框架更加灵活,可以根据配置文件加载不同的对象或类,调用不同的方法 - 优点
反射是十分灵活的,它可以动态的创建和编译对象.就像我要更新某些功能,只要在运行的时候编译它就能更新 - 缺点
反射首先是增加了代码的复杂度,其次是它的性能问题,它接入方法、对象时比直接输入代码慢.
网友评论