首页 >> 网络营销词典 >> 互联网基础知识FAQ >> java 反射

java 反射[编辑]


概述
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性。

一、什么是Java反射机制
简单的来说,反射机制指的是程序在运行时能够获取自身的信息。在java中,只要给定类的名字,那么就可以通过反射机制来获得类的所有信息。

二、哪里需要用到Java反射机制
有些时候,我们用过一些知识,但是并不知道它的专业术语是什么,在刚刚学jdbc时用过一行代码, Class.forName("com.mysql.jdbc.Driver.class").newInstance();但是那时候只知道那行代码是生成驱动对象实例,并不知道它的具体含义。听了反射机制这节课后,才知道,原来这就是反射,现在很多开框架都用到反射机制,hibernate、struts都是用反射机制实现的。

三、Java反射机制的作用:
1、反编译:.class-->.java
2、通过反射机制访问java对象的属性,方法,构造方法等;

四、Java反射机制的优点与缺点
1、反射机制的优点,就是可以实现动态创建对象和编译,体现出很大的灵活性,特别是在J2EE的开发中它的灵活性就表现的十分明显。采用静态的话,需要把整个程序重新编译一次才可以实现功能的更新,而采用反射机制的话,它就可以不用卸载,只需要在运行时才动态的创建和编译,就可以实现该功能。
2、它的缺点,是对性能有影响。使用反射基本上是一种解释操作,我们可以告诉JVM,我们希望做什么并且它满足我们的要求。这类操作总是慢于只直接执行相同的操作。

五、利用Java反射机制能获得什么信息
类中有什么信息,它就可以获得什么信息,不过前提是得知道类的名字,要不就没有后文了。首先得根据传入的类的全名来创建Class对象。 Class c=Class.forName("className");注明:className必须为全名,也就是得包含包名。举例说明,反射机制能获得的信息:
1、获得构造函数的方法
Constructor getConstructor(Class[] params)//根据指定参数获得public构造器;
Constructor[] getConstructors()//获得public的所有构造器;
Constructor getDeclaredConstructor(Class[] params)//根据指定参数获得public和非public的构造器;
Constructor[] getDeclaredConstructors()//获得public的所有构造器;
2、获得类方法的方法
Method getMethod(String name, Class[] params),根据方法名,参数类型获得方法;
Method[] getMethods()//获得所有的public方法;
Method getDeclaredMethod(String name, Class[] params)//根据方法名和参数类型,获得public和非public的方法;
Method[] getDeclaredMethods()//获得所以的public和非public方法;
3、获得类中属性的方法
Field getField(String name)//根据变量名得到相应的public变量;
Field[] getFields()//获得类中所以public的方法;
Field getDeclaredField(String name)//根据方法名获得public和非public变量;
Field[] getDeclaredFields()//获得类中所有的public和非public方法。

六、Java反射机制有什么功能
Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。

七、Java反射机制总结
总的来说,java反射机制是一个很好用的东西,用它可以解决很多死的东西,因为反射机制的灵活行很大,有了他,我们就不要花太多的时间来写操做数据库的代码了,而是方法更多的时间在项目的逻辑功能上,这个可以很大的减少开发时间,而且代码的可读性好。先在的很多开源框架都是才用的反射机制,它只要配置文件,然后按规则来调用他的方法就可以了。

参考资料: http://baike.baidu.com/link?url=s5O_GmYXKDYfmsW8OYtm65HGT5rVISQE5o144nviMgZMo475fRq3E3We7K7ASgZcRSa_TJzAY6uBH0QqhlRT7_ http://baike.haosou.com/doc/5458411-5696799.html
扩展阅读: http://blog.sina.com.cn/s/blog_aeb1c89e0102w0sk.html http://blog.sina.com.cn/jacfancy
相关词条:

http://www.wm23.com/wiki/28917.htm

http://wm23.cn/foda2013314313

合作编辑:

网络营销词典内容均由网友提供,仅供参考。如发现词条内容有问题,请发邮件至info # wm23.com。

词条信息

浏览次数:7

编辑次数:0历史版本

创建者: 吴杰繁

最近更新:2015/11/15 5:48:44

词条分类导航

关于网络营销教学网站| 本站动态| 网站地图| 版权声明| 联系作者| 问题和建议|

版权声明:网络营销教学网站所有作品版权均归原作者所有,未经书面许可,严禁任何形式的转载/转贴、出版、篡改、汇编、编译等。