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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄坚声 中级黑马   /  2012-5-11 11:23  /  4173 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

:)在什么情况下使用反射?学了反射,感觉好像没有用到。

7 个回复

倒序浏览
   先说说java反射机制是什么:
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
   Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。
  至于你说的反射有什么用,那反射作用就大了去了,后面接触到框架之后,就会明白,java的反射机制是框架的基础,比如经典的web开发框架spring,strusts,strusts2等都是建立在反射的基础上的.

评分

参与人数 2技术分 +1 黑马币 +10 收起 理由
贠(yun)靖 + 1
高云飞 + 10 好的,我知道了,反射是用来在运行时动态得.

查看全部评分

回复 使用道具 举报
反射API允许在运行期间获得类的信息,通过使用反射api,可以使用任意的构造器来动态的创建对象、通过一个对象获得完整的包名和类名、返回一个类实现的接口、获得其他类中的全部构造函数。。。
回复 使用道具 举报
Java 的反射机制是使其具有动态特性的非常关键的一种机制,也是在JavaBean 中广泛应用的一种特性。
运用JavaBean 的最常见的问题是:根据指定的类名,类字段名和所对应的数据,得到该类的实例

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
Java 的反射机制是使其具有动态特性的非常关键的一种机制,也是在JavaBean 中广泛应用的一种特性。
运用JavaBean 的最常见的问题是:根据指定的类名,类字段名和所对应的数据,得到该类的实例
回复 使用道具 举报
反射应用很多,
框架的设计,(当别人设计框架时,并不知道要用到什么类及方法,这就用到了反射获取后人的类,而后人用框架时只需要写上xxx类,就可以直接用到它功能(底层的实现是框架帮你用反射,得到了对象及方法)这样就实现了,应用者和调用者的分离,降低了他俩的依赖关系);
代理的实现proxy就是用到了反射。

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
反射就是把java类中的各种成分映射成相应的java类
例如:一个java类中用一个Class类的对象来表示,一个类中的组成部分:成员变量,方法,构造方法,包等等信息也用一个java类来表示。就像汽车是一个类,汽车中的发动机,变速箱等等也是一个的类。

表示java类的Class类显然要提供一系列的方法,来获取得其中的变量和方法,构造方 法,修饰符,包等信息,这些信息就是用相应类的实例对象来表示,它们是Field,Method,Constructor,Package等等

得到一个类的Class对象,然后通过Class对象来解析类的结构,比如说得到这个类有什么方法,有什么属性。得到这些方法或属性后,可以调用指定对象上的这个方法,也可以给指定对象上的这个属性赋值。

T t = new T();
Class c = t.getClass(); //得到T这个类的class对象
Method m = c.getDeclaredMethod("getName"); //得到getName方法
m.invoke(t); //调用getName方法,并且将this指向t这个对象
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马