您的位置:首页 > 职场人生

黑马程序员--java技术blog---第十一篇:反射

2015-08-14 14:09 477 查看
------- android培训java培训、期待与您交流! ----------

1、Class类
描述类的类,
所有的数据类型包括类都由一个Class类描述
基础数据类型如int,double,float等
forName(类名)可以关联需要类

2、反射
反射就是把Java类中的各种成分映射成相应的java类
有许多类对应Class里的成员变量
Method、Contructor、Package、Field

3、构造方法
Constructor类 来描述构造方法
getConstructors()得到所有的构造方法
getConstructor(参数的Class类) 得到特点的构造方法
newInstance()返回一个该类的对象为Object类型,使用时需要强转

4、成员变量
Field类 
Class类中的getField(name)会返回名称为name的Field
Field对应类不对应对象
get(对象)返回对象中这个成员变量的值
getField只能得到公用的的成员变量
私有的用getDeclaredField()
私有的不能直接使用不能直接使用get()方法
要先setAccessible(true)使其可以访问
getType()返回字段类型
字节码用==比较
用set方法进行设置值

5、成员方法
Method类
Class类的getMethod(方法名,参数)参数可以传递多个(重载)参数传参数的Class
invoke调用该方法第一个参数是对象,后面是方法的参数;对象传入null即可调用静态方法
jdk1.5会把数组拆包(invoke方法)解决方法,数组外层再用一个数组封装
拆包只拆一次 直接将数组转成Object也可以

6、数组
数组的Class类由类型和维度组成
[I 表示Int型一维数组
获取成员变量类型先获取一个成员

7、hashcode
寻找时快,分成若干个区域
对象存入HashSet后,参与计算HashCode的成员变量一旦改变,该对象就能再次被存入HashSet
而且会产生内存泄露
Java中是不是有内存泄露,这种情况可以作为一个例子

8、框架
用反射可以在目标类不明的情况下定义处理方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: