zoukankan      html  css  js  c++  java
  • 根据类信息和提供的代理类名称,生成字节码,然后通过流的方式写到磁盘文件中(动态代理)

    package com.bijian.jdkproxy;

    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.lang.reflect.Proxy;
    import sun.misc.ProxyGenerator;

    public class ProxyUtils {

    /*
    * 将根据类信息 动态生成的二进制字节码保存到硬盘中,
    * 默认的是clazz目录下
    * params :clazz 需要生成动态代理类的类
    * proxyName : 为动态生成的代理类的名称
    */
    public static void generateClassFile(Class clazz, String proxyName) {

    //根据类信息和提供的代理类名称,生成字节码
    byte[] classFile = ProxyGenerator.generateProxyClass(proxyName, clazz.getInterfaces());
    String paths = clazz.getResource(".").getPath();
    System.out.println(paths);
    FileOutputStream out = null;

    try {
    //保留到硬盘中
    out = new FileOutputStream(paths + proxyName + ".class");
    out.write(classFile);
    out.flush();
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    try {
    out.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }
    }

  • 相关阅读:
    P1939 矩阵加速(数列)
    P3390 矩阵快速幂
    快速幂
    1236:区间合并
    1183:病人排队
    1230:寻找平面上的极大点
    1244:和为给定数
    1228 书架
    1222 放苹果
    洛谷5015标题统计
  • 原文地址:https://www.cnblogs.com/qiumingcheng/p/8710405.html
Copyright © 2011-2022 走看看