反射机制

一、创建Class对象的三种方式:
1:利用对象的静态属性class,直接返回Class对象
例:Class classs = Student.class;
2:利用对象的getClass()方法,返回Class对象
例:Student student = new Student("",1);
     Class<Student> classss = (Class<Student>) student.getClass();
3:利用Class类的forname(String str)方法,创建Class对象
例:Class<Student> classs = (Class<Student>) Class.forName("classs.demo.Student");


二、Class对象获取构造,属性,方法
1:构造,属性,方法三个类对象
<1:Constructor-构造
<2:Field-属性
<3:Method-方法
2:获取构造类
//getConstructor()参数为构造参数对应的参数对象
Constructor<Student> constructor = classs.getConstructor(String.class,int.class) ;
//获取指定构造,私有构造也可获取
Constructor<Student> constructor1 = classs.getDeclaredConstructor(String.class,int.class);
//如果构造为私有构造,需要设置权限(可访问权限)
constructor.setAccessible(true);
//构造对象new对象
Student student = constructor.newInstance("张三",22);
3:获取属性类
//利用Class对象获取属性对象
//参数为属性名称
Field field = classs.getDeclaredField("age");
//设置访问权限(可访问权限)
field.setAccessible(true);
//给属性赋值
//参数1为给哪个对象赋值,参数2为赋值变量
field.setInt(student, 11);
4:获取方法类
//利用Class对象获取方法类,参数1为方法名称,参数2为,指定方法参数的class对象
//setName(String str)
Method method = classs.getDeclaredMethod("setName", String.class);
method.setAccessible(true);
//参数1为调用对象,参数2为为被调用的方法参数
method.invoke(student, "李四");

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值