学习java反射两天了,刚开始很迷糊,感觉不好理解,通过重复观看视频和做练习,总算有点感觉了.
反射,顾名思义,是一种映射关系,它将对象的类属性以及类中的各种元素提取出来,映射成各种类
通过这些类可以了解原始对象或原始类中的各种信息,进一步的,可以通过反射更改原始数据.
学习反射机制,主要学习了以下几个类:
1.Class
就是类反射过来的一种类,有点拗口,比如String是一种类,它加载到JVM中会反射为String.class的类
得到Class类型的实例有以下几种方法:
类名.class,例如,System.class
对象.getClass(),例如,new Date().getClass()
Class.forName("类名"),例如,Class.forName("java.util.Date");
ClassLoader对象的loadClass()方法
2.Constructor
对应的就是构造器的类型
获取方法:getConstructor();返回公共构造方法,意思是私有的得不到
getConstructors();返回构造方法数组,私有的得不到
getDeclaredConstructor();返回构造方法,私有的也可得到
getDeclaredConstructors();返回构造方法数组,私有的也可得到
3.Field
对应的反射的字段可能是一个类(静态)字段或实例字段。
获取字段的方法有getField();和getDeclaredField();前者不能取得私有属性的字段,后者可以,再通过setAccessible()方法,
就可以修改私有属性字段的数据,被称为:暴力反射
4.Method
方法的类型,反映的方法可能是类方法或实例方法(包括抽象方法)。
获取方法和获取Constructor类似,不再覆述.
---------------------- android培训、java培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net/heima