首页 > 其他分享 >反射

反射

时间:2023-03-25 12:23:03浏览次数:27  
标签:反射 对象 成员 获取 方法 public

1.什么是反射

反射允许对成员变量,成员方法,构造方法的信息进行编程访问

2.如何获取字节码文件对象

class.forName(全类名)

类名.class;

类对象.getClass();

3.反射的优缺点

优点:

1.提高程序灵活性和扩展性

2.降低耦合性

3.允许程序创建和控制任何类的对象,无需提前硬编码目标类

缺点:

1.反射机制主要应用载对灵活性和拓展性很强的框架上,普通程序不建议使用

2.不好维护

4.反射的使用步骤

1.获取Class对象

2.获取Class对象的每个成员对象(属性,方法,构造)

3.操作成员对象

5.反射获取构造方法(Constructor对象)

1.Constructors [] getConstructors()获取public的所有构造器的数组

2.Constructors []getDeclaredConstructors()获取所有构造器的数组

3.getgetConstructor()获取单个public构造器(指定参数)

4.getDeclaredConstructo()获取单个的构造器(指定参数)

常用方法

newInstance(Object)根据指定构造器创建对象

setAccessible(boolean)设置为true,破坏封装,允许暴力访问(私有的构造实例化前必须开启暴力访问)

6.反射获取成员变量(Field)

1.Field [] getFields()获取所有public的成员变量对象的数组

2.Field [] getDeclaredFields()获取所有的成员变量对象的数组

3. getField(String name)获取一个指定的public的成员变量对象的数组

4. getDeclaredField(String name)获取一个指定的的成员变量对象的数组

常用方法

1.set(Object obj,Object value)给成员变量赋值

2.get(Object obj)获取值

3.setAccessible(boolean)设置为true,破坏封装,允许暴力访问(私有的成员变量赋值和取值前必须开启暴力访问)

7.反射获取成员方法(Method)

1.Method [] getMethods()获取所有public的成员方法对象的数组

2.Method [] getDeclaredMethods()获取所有的成员方法对象的数组

3. getMethod(方法名,参数)获取单个指定的public的成员方法对象

4.getDeclaredMethod(方法名,参数)获取单个指定的成员方法对象

常用方法

1.返回值  invoke(使用方法的对象,使用方法的参数)

无方法参数不写,无返回值可不写

2.setAccessible(boolean)设置为true,破坏封装,允许暴力访问(私有的成员变量赋值和取值前必须开启暴力访问)

标签:反射,对象,成员,获取,方法,public
From: https://www.cnblogs.com/zlsame/p/17251588.html

相关文章