------- android培训 java培训、期待与您交流! ----------
一、反射的概念
什么是反射:是把java类中的各种成分映射成相应的java类。就是把java程序中的各个类,看做一个类,用这个类来描述这类事物。
从而可以得到这个类的实例对象,这个实例对象中
二.反射
1.Class
.class文件加载到内存中就是一个Class对象
获取Class对象的方式有3种:
Class.forName()
类名.class
对象.getClass()
Class类的newInstance()方法是使用该类无参的构造函数创建对象, 如果一个类没有无参的构造函数, 就不能这样创建了
可以调用Class类的getConstructor(Class...)方法获取一个指定的构造函数
然后再调用Constructor类的newInstance(Object...)方法创建对象
Class.getField(String)方法可以获取类中的指定字段(可见的), 如果是私有的可以用getDeclaedField()方法获取
通过set(Object, Object)方法可以设置指定对象上该字段的值, 如果是私有的需要先调用setAccessible(true)设置访问权限
get(Object)可以获取指定对象中该字段的值
Class.getMethod(String, Class...) 和 Class.getDeclaredMethod(String, Class...)方法可以获取类中的指定方法
调用invoke(Object, Object...)可以调用该方法
三、反射的应用