2023.1.9日学习内容(反射)

文章介绍了在Java中获取字节码对象的三种方式,包括类名.class,getClass()方法和Class.forName()。接着,通过反射创建了StudentDemo对象,并调用了其无参和带参的方法,展示了反射在动态调用方法上的应用。
摘要由CSDN通过智能技术生成

1,获取字节码对象的三种方式

1)通过类名.class获取

2)通过Object类的成员方法getClass()方法获取

3)通过Class.forName("带包类名")方法获取

2,通过反射创建对象

Class aClass=Class.forName("com.dyh.StudentDemo");

Constructor constructor= aClass.getConstructor(String.class,int.class);

StudentDemo student= (StudentDemo) constructor.newInstance("张三",23);

System.out.println(student);

先选定调用的类的位置,获取Student类的构造方法,利用构造方法实例化对象,输出对象信息

Student类代码

public class StudentDemo {

private String name;

private int age;

public void study() {

System.out.println("学习");

}

public void study(String name, int time) {

System.out.println("学习的科目是: " + name + "学习的时间是:" + time);

}

public StudentDemo() {

}

public StudentDemo(String name, int age) {

this.name = name;

this.age = age;

}

@Override

public String toString() {

return "StudentDemo{" +

"name='" + name + '\'' +

", age=" + age +

'}';

}

}

紧接上面,调用Student类中的study方法

Method method=aClass.getMethod("study");

method.invoke(student,null);

就会打印出学习

而后可一调用其带参的方法

Method method1=aClass.getMethod("study",String.class,int.class);

method1.invoke(student, "英语",23);

以上打印的结果为

StudentDemo{name='张三', age=23}

学习

学习的科目是: 英语学习的时间是:23

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值