
ByteCode
weistar103
这个作者很懒,什么都没留下…
展开
-
使用ASM动态创建类
使用ASM动态创建类,可以不需要java源文件,或者在类被JAVA虚拟机装入内存之前,动态修改类。如下,动态创建一个类Example.class并执行。ClassWriter cw = new ClassWriter(0); cw.visit(V1_5, ACC_PUBLIC, "Example", null, "java/lang/Object", null);...原创 2013-02-28 14:44:02 · 446 阅读 · 0 评论 -
使用ASM访问一个类
使用ASM4可以方便的访问一个类文件结构内容,只需要实现ClassVisitor接口或继承ClassAdapter注意,ASM基于责任链模式设计,有严格的访问顺序,如下:visit visitSource? visitOuterClass? ( visitAnnotation | visitAttribute )*( visitInnerClass | visitField | v...原创 2013-02-28 14:52:21 · 256 阅读 · 0 评论 -
使用ASM为一个类增加属性
使用ASM可以方便的访问和修改一个类,或者在JVM载入前动态更新一个类也是可以的,如下,为一个类动态增加一个属性,类Student如下:public class Student { private int age; private String name; public int getAge() { return age; } public void ...原创 2013-02-28 15:18:17 · 1228 阅读 · 0 评论 -
使用ASM动态创建接口实现类
使用ASM动态生成一个接口的实现类,接口如下: public interface ISayHello { public void MethodA(); public void MethodB(); public void Abs();} 具体实现如下: public class InterfaceHandler extends ClassLoader ...原创 2013-02-28 16:02:20 · 701 阅读 · 0 评论 -
使用ASM动态生成类的拦截代理类
文章源自http://www.iteye.com/topic/1123350 使用ASM实现AOP功能,根据现有的CLASS类文件,动态生成它的代理类文件,并在所有的方法前后添加拦截处理,具体如下:1.生成被代理类的子类,并重写所有方法(除java.lang.Object类定义的方法和main),增加before和after拦截。2.重新定义被代理类的所有属性(不包括属性的赋值...原创 2013-02-28 17:20:23 · 355 阅读 · 0 评论