java 动态代理 生成字节码文件
来源:互联网 发布:百雀羚vs欧莱雅 知乎 编辑:程序博客网 时间:2024/05/29 04:46
/* 设置此系统属性,让JVM生成的Proxy类写入文件 */ System.setProperty("sun.misc.ProxyGenerator.saveGeneratedFiles", "true");
java 动态代理 实例及机制详解
http://blog.csdn.net/qqduxingzhe/article/details/77455517
示例
rent()
hello( … )
//// Source code recreated from a .class file by IntelliJ IDEA// (powered by Fernflower decompiler)//package com.sun.proxy;import demo2.Subject;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;import java.lang.reflect.UndeclaredThrowableException;public final class $Proxy0 extends Proxy implements Subject { private static Method m1; private static Method m3; private static Method m2; private static Method m4; private static Method m0; public $Proxy0(InvocationHandler var1) throws { super(var1); } public final boolean equals(Object var1) throws { try { return ((Boolean)super.h.invoke(this, m1, new Object[]{var1})).booleanValue(); } catch (RuntimeException | Error var3) { throw var3; } catch (Throwable var4) { throw new UndeclaredThrowableException(var4); } } public final void rent() throws { try { super.h.invoke(this, m3, (Object[])null); } catch (RuntimeException | Error var2) { throw var2; } catch (Throwable var3) { throw new UndeclaredThrowableException(var3); } } public final String toString() throws { try { return (String)super.h.invoke(this, m2, (Object[])null); } catch (RuntimeException | Error var2) { throw var2; } catch (Throwable var3) { throw new UndeclaredThrowableException(var3); } } public final void hello(String var1) throws { try { super.h.invoke(this, m4, new Object[]{var1}); } catch (RuntimeException | Error var3) { throw var3; } catch (Throwable var4) { throw new UndeclaredThrowableException(var4); } } public final int hashCode() throws { try { return ((Integer)super.h.invoke(this, m0, (Object[])null)).intValue(); } catch (RuntimeException | Error var2) { throw var2; } catch (Throwable var3) { throw new UndeclaredThrowableException(var3); } } static { try { m1 = Class.forName("java.lang.Object").getMethod("equals", Class.forName("java.lang.Object")); m3 = Class.forName("demo2.Subject").getMethod("rent"); m2 = Class.forName("java.lang.Object").getMethod("toString"); m4 = Class.forName("demo2.Subject").getMethod("hello", Class.forName("java.lang.String")); m0 = Class.forName("java.lang.Object").getMethod("hashCode"); } catch (NoSuchMethodException var2) { throw new NoSuchMethodError(var2.getMessage()); } catch (ClassNotFoundException var3) { throw new NoClassDefFoundError(var3.getMessage()); } }}
end
阅读全文
0 0
- java 动态代理 生成字节码文件
- java-动态代理-jdk代理、cglib代理、生成字节码文件.
- spring AOP动态代理和CGLIB字节码生成
- Spring---->JDK动态代理和CGLIB字节码生成
- Java 动态代理与class字节码动态修改技术
- Java 动态生成二进制字节码
- java动态代理之 asm字节码编辑器
- jdk动态代理(动态生成字节码与反射机制的结合)
- Java动态代理生成方式
- java动态代理-生成代理类
- asm动态生成字节码
- Java 将字符串动态生成字节码的一种方法
- Java字节码的动态生成和增强
- Java 将字符串动态生成字节码的一种方法
- java动态生成源文件和字节码方式
- 动态代理---动态生成java文件并编译成class文件
- 动态代理---动态生成java文件并编译成class文件
- 动态代理---动态生成java文件并编译成class文件
- 梯度下降法
- 数据结构
- 获得各种系统路径
- 算法提高 ADV-17 统计单词数
- C/C++字符或字符串的输入
- java 动态代理 生成字节码文件
- java中的转义字符
- zcmu1507
- cf 729D Sea Battle 【模拟,贪心】
- xcrun: error: unable to find utility "PackageApplication", not a developer tool or in PATH
- 关于转移博客的通知
- Blender脚本编程
- Codeforces 794 F Leha and security system(线段树+构造)
- 算法提高 ADV-18 实数相加