本文最后更新于: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 协议 ,转载请注明出处!