java之反射机制

从这篇文章中可以学到对字节码文件的基本操作,通过字节码获取一个类里面constructor(构造器),method(方法),通过构造器得到实例
工具类如下:
创建JdkProxyHello工具包

package com.example.demo.Test;

public class JdkProxyHello implements  JdkProxy {
    @Override
    public String dsa() {
        return "name";
    }
}

通过反射调用工具包代码如下:

public class Reflection {
    public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
        Class aClass=Class.forName("com.example.demo.Test.JdkProxyHello");
        Class aClass1=aClass.getClass();   //得到字节码文件
        System.out.println("this is my interface:"+aClass1.getInterfaces());
        Method method=aClass.getMethod("dsa");   //从字节码文件里面得到所有的方法
        System.out.println("this is my method:"+method);
        Constructor constructor=aClass.getConstructor(); //从字节码文件里面得到构造器
        //从构造器里面得到实例
        JdkProxyHello jdkProxyHello= (JdkProxyHello) constructor.newInstance();
        System.out.println("从构造器得到的实例:"+jdkProxyHello);
        System.out.println("这个是我的constructor:"+constructor);
        Object o=method.invoke(jdkProxyHello);
        System.out.println("从method方法里面得到对象"+o);
    }
}

可以得到以下结果:
在这里插入图片描述
了解java文件结构,就可以很容易的理解了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值