所谓反射的简单理解其实就是通过对象找到对象所在类的名称。
Class类是Java反射的源头。表示一个类的本身,通过Class可以完整地得到一个类的完整结构(包括类中方法及属性的定义)。
实例化Class类有三种方法:
- 通过forName()方法
- 类.class
- 对象.getClass()
一旦实例化Class类之后,就可以进行反射的进一步操作。
在java.lang.Object 类中定义了getClass()方法,因此对于任意一个Java
对象
,都可以通过此方法获得对象的类型。
Class类是
Reflection API 中的核心类,它有以下方法:
getName():获得类的完整名字。
getFields():获得类的public类型的属性。
getDeclaredFields():获得类的所有属性。
getMethods():获得类的public类型的方法。
getDeclaredMethods():获得类的所有方法。
getMethod(String name, Class[] parameterTypes):获得类的特定方法,name参数指定方法的名字,parameterTypes 参数指定方法
的参数类型。
getConstructors():获得类的public类型的构造方法。
getConstructor(Class[] parameterTypes):获得类的特定构造方法,parameterTypes 参数指定构造方法的参数类型。
newInstance():通过类的
不带参数
的构造方法创建这个类的一个对象。