本文最后更新于:1 个月前
Java的反射(reflection)机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。这种动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制。反射被视为动态语言的关键。
反射
Java 中的 Class 类
Class
类的构造方法是私有的,无法在代码中显式的生命一个 Class
对象
获得 Class
类的对象
- 通过类的静态成员表示,每个类都有一个隐含的静态成员
class
- 通过类的
getClass()
方法,和上类似 - 通过
Class
类的静态方法forName()
获取Class
对象(可实现程序运行时类的动态加载)
由 Class
类的对象得到类的对象
newInstance()
方法,此方法调用类的 无参构造函数
Java反射机制
Java 反射机制在程序运行时,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性。这种 动态的获取信息 以及 动态调用对象的方法 的功能称为 java 的反射机制。
变量
getFields()
获取所有 public 访问权限的变量getDeclaredFields()
获取所有本类声明的变量getDeclaredField(参数名)
获取私有变量
以下方法对变量对象调用
getModifiers()
获取变量的访问权限getType().getName()
获取变量的类型getName()
获取变量名
方法
getMethods()
获取所有 public 访问权限的方法getDeclaredMethods()
获取所有本类的方法
以下方法对方法对象调用
getModifiers()
获取方法的访问权限getReturnType()
获取方法的返回值类型getParameters()
获取方法的所有参数getType().getName()
获取方法参数的类型getName()
获取方法参数名
getExceptionTypes()
获取方法抛出的异常getDeclaredMethod(方法名,[参数类型])
获取私有方法setAccessible(true)
获取私有方法的访问权限
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!