A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 多一点 于 2014-1-4 22:38 编辑

java 反射在开发中有什么用?请各位前辈指点,先叩谢

6 个回复

倒序浏览
貌似开发框架用的比较多。。其他不了解。
回复 使用道具 举报
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的以及动态调用对象的方法的功能称为java语言的反射机制。
Java反射机制主要提供了以下功能:在运行时判定任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判定任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。

点评

说的好。。很具体  发表于 2014-1-5 01:19

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
通过java反射获得加载类,获得类的实例,
还有可以获得类中的私有成员属性。
Class c=Class.forName("类的名称");//通过配置文件
c.newInstance();//得到类的无参构造
c.getDeclaredFields();//获得本类的所有成员
c.getFields();//获得本类以及父类的一些公有属性
并且它允许运行中的 Java 程序对自身进行检查,或者说“自审”,并能直接操作程序的内部属性。Java 的这一能力在实际应用中也许用得不是很多,但是在其它的程序设计语言中根本就不存在这一特性。
回复 使用道具 举报
用在框架中比较多,比如在spring中我们只要配置如下文件就可以把类名为PersonDao的实例对象加载到PersonServiceBean中
  1. <bean id="persondao" class="com.yy.dao.PersonDao"></bean>
  2.            <bean id="personService" class="com.yy.service.impl.PersonServiceBean">
  3.                    <property name="personDao" ref="persondao"></property>
  4. /bean>
复制代码

原理是spring它会根据ref的value值找到与之相等的id项,然后得到与id项所对应的完整类名,然后通过Class.forname().newInstance()加载类并进行实例化。

回复 使用道具 举报
谢谢大家的回答 感谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马