黑马程序员技术交流社区

标题: 反射 [打印本页]

作者: 小飞龙    时间: 2012-7-19 16:22
标题: 反射
看了张老师 反射视频的那一块,觉得有些东西 我们可以通过很简单的方法也能做到不一定要通过反射

啊! 那为什么java要提供反射呢,然后再看了下,发现反射居然能访问私有成员
比如:fieldAge.setAccessible(true);  这样就可以对私有成员age 操作了 能读能取   我们定义私有

不就是不想让别人知道 不想让别人改吗  为什么java要提供这样的机制呢
作者: 山水游客    时间: 2012-7-19 16:34
射其实就是程序能够自检查自身信息。就像程序会照镜子反光看自己。

在程序中可以检查某个类中的方法属性等信息,并且能够动态调用。
这样可以写出很灵活的程序。
比如要把一个对象中的数据copy到另外一个对象中,规则是属性名相同就copy,
就可以用反射来做,不需要指定每个属性的名字,只要动态从类中取得信息,
再判断属性名是否相同即可
作者: 柳雷    时间: 2012-7-20 00:26
反射的定义:审查元数据并收集关於它的类型信息的能力,元数据(编辑后的基本数据单元)就是一大堆表,编译器会创建一个类定义表,一个字段定义表,一个方法定义表等,System.Reflection命名空间包含的几个类,允许你反射(解析)这些元数据的代码

一、反射的作用:


动态的创建类型的实例,将类型邦定到现有对象,或从现有对象中获取类型
应用程序需要在运行时从某个特定的程序集中载入一个特定的类型,以便实现某个任务时可以用到反射
反射主要应用於类库,这些类库需要知道一个类型的定义,以便提供更多的功能

二、应用要点:


现实应用程序中很少使用到反射
使用反射动态邦定需要牺牲性能
有些元数据信息是不能通过反射获取的
某些反射类型是专门為那些CLR开发编辑器开发使用的,所以你要意思到不是所有反射类型都是可以使用的






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2