反射

反射

​ 反射

1:根据字符串获取类的对应信息

2: 调用私有方法和获取私有属性

获取类的class变量 zz

1 Class zz = 类名.class;

2 Class zz = 对象.getclass( );

3 Class zz = Class.forName("类的全路径")

根据反射获取对象

​ 如有 无参 public 的构造方法

​ Student student = (Student)zz.newInstance();

根据有参public 构造方法获取对象

​ 获取构造方法

​ Constructor constructor = zz.getConstructor(参数类型.class , 参数类型.class ....) (构造方法的参数)

​ 获取对象

​ Student student = (Student) constructor.newInstance(" "," ")(填入对应的有参构造方法的值)

根据有参private构造方法获取对象

​ 获取构造方法

​ Constructor constructor = zz.getDeclaredConstructor(参数类型.class , 参数类型.class ....) (构造方法的参数)

​ constructor.setAccessible(true); //获得权限

​ 获取对象

​ Student student = (Student) constructor.newInstance(" "," ")(填入对应的有参构造方法的值)

根据反射获取方法

获取public方法

​ Method method = zz.getMethod("方法名",参数类型.class,参数类型.class...)(参数类型为方法中的)

获取private的方法

​ Method method = zz.getDeclaredMethod("方法名",参数类型.class,参数类型.class...)(参数类型为方法中的)

方法有返回值时

​ Object object = method.invoke(student, "方法中的参数","方法中的参数1"....)

根据反射获取变量并赋值

非私有

​ Field field=zz.getField("属性名“) ;

​ 赋值(给对应的对象的属性赋值)

​ field.set(student , "属性值")

私有

​ Field field=zz.getDeclaredField("属性名“) ;

​ field.setAccessible(true);

​ field.set(student , "私有属性值")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值