java反射机制(总结)

803 阅读1分钟

反射机制

是在运行状态中,对于任意一个类,都能知道这个类的所有属性和方法;对于任意一个对象,都能调用它的任意一个方法和属性。

反射提供的功能:

在运行时判断任意一个对象所属的类 在运行时构造任意一个类的对象 在运行时判断任意一个类所具有的成员变量和方法 在运行时调用任意一个对象的方法 生成动态代理

反射的入口(Class):

获取Class有三种方式:

Class.forName(“全类名”);需要捕捉异常 类名.class; 对象.getClass();

获取所有公共的方法:(本类和父类以及接口的所有public方法)

反射对象.getMethods();

获取所有接口:(多实现:有多个)

反射对象.getinterfaces();

获取父类:

反射对象.getSuperclass();(单继承:只有一个)

获取构造方法:

反射对象.getConstructors()

获取所有的公共属性:

反射对象.getFields();

获取当前类的所有方法:(只有本类的方法)

反射对象.getDeclaredMethods();

获取当前类的所有属性:(只有本类的属性)

反射对象.getDeclaredFields();

获取当前反射所代表的类(接口)的对象(实例):

反射对象.newInstance();需要捕捉异常

修改属性/方法/构造方法的访问权限:

属性/方法/构造方法.getAccessible(true);//打开权限默认是false

方法的调用:

方法.invoke(对象,参数值);

注意:

在反射中,根据类型获取方法时,基本数据类型和包装类是不同的类型