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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小飞龙 初级黑马   /  2012-7-19 16:22  /  1379 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

看了张老师 反射视频的那一块,觉得有些东西 我们可以通过很简单的方法也能做到不一定要通过反射

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

不就是不想让别人知道 不想让别人改吗  为什么java要提供这样的机制呢

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

2 个回复

倒序浏览
射其实就是程序能够自检查自身信息。就像程序会照镜子反光看自己。

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

一、反射的作用:


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

二、应用要点:


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

评分

参与人数 1技术分 +1 收起 理由
刘笑 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马