理解Class类及其常用方法
Class类
在Object类中定义了以下的方法,此方法将所有子类继承:public final Class getClass()以上的方法返回值的类型是一个Class类,此类是Java反射的源头,实际上所谓反射从程序的运行结果来看也是很好理解,即:可以通过对象反射求出类的名称正常方式: 引入需要的"包类"名称--->通过new实例化--->取得实例化对象反射方式: 实例化对象--->getClass()方法--->得到完整的"包类"名称对照镜子后可以得到的信息:某个类的属性、方法、和构造器、某个类到底实现了哪些接口。大于每个类而言,
JRE都是为其保留一个不变的Class类型的对象。一个Class对象包含了特定某个类的有关信息。
Class本身也是一个类
Class对象只能由系统建立对象
一个类在JVM中只会有一个Class实例
一个Class对象对应的是一个加载到JVM中的一个.class文件
每个类的实例都会记得自己是由哪个Class实例所生成
通过Class可以完整地得到一个类中的完整结构
Class类的常用方法
* Class对象功能:
* 获取功能:
1. 获取成员变量们
* Field[] getFields() :获取所有public修饰的成员变量
* Field getField(String name) 获取指定名称的 public修饰的成员变量
* Field[] getDeclaredFields() 获取所有的成员变量,不考虑修饰符
* Field getDeclaredField(String name)
2. 获取构造方法们
* Constructor<?>[] getConstructors()
* Constructor<T> getConstructor(类<?>... parameterTypes)
* Constructor<T> getDeclaredConstructor(类<?>... parameterTypes)
* Constructor<?>[] getDeclaredConstructors()
3. 获取成员方法们:
* Method[] getMethods()
* Method getMethod(String name, 类<?>... parameterTypes)
* Method[] getDeclaredMethods()
* Method getDeclaredMethod(String name, 类<?>... parameterTypes)
4. 获取全类名
* String getName()
|
|