Java SE练习 - 反射获取对象构造方法、成员变量、成员方法

前言:反射使用回顾

一、获取字节码文件对象的三种方式,推荐使用第三种方式

//获取字节码文件对象的三种方式
        //方式一
        Class c1 = Student.class;
        //方式二
        Student stu = new Student();
        Class c2 = stu.getClass();
        //方式三
        Class c3 = Class.forName("cn.itcast.javaeevideoday02.Student");

二、获取无参构造

//获取对象无参构造
        Constructor constructor = c3.getConstructor();
        Object student = constructor.newInstance();
        System.out.println(student);

三、获取有参构造

//获取有参构造
        Constructor constructor2 = c3.getConstructor(String.class,int.class,String.class);
        Object student2 = constructor2.newInstance("张三",20,"男");
        System.out.println(student2);

四、快捷方式获取对象实例
前提:对象有空参构造,并且权限为public

//快捷方式获取对象实例
        Object student = c3.newInstance();
        System.out.println(student);

五、获取对象成员变量,并赋值和获取值

Object student = c3.newInstance();

        //给成员变量赋值
        Field field = c3.getField("name");
        field.set(student, "张三");
        System.out.println(student);
        //获取成员变量值
        Object object = field.get(student);
        System.out.println(object);

六、获取成员方法
get/set方法示例

Object student = c3.newInstance();

        //有参数set
        Method method = c3.getMethod("setName",String.class);
        method.invoke(student, "张三");
        System.out.println(student);

        //无参数get
        Method method2 = c3.getMethod("getName");
        Object object = method2.invoke(student);
        System.out.println(object);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值