本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- xiangjie88
- zysnba
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- gengyun12
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- arpenker
- tanling8334
- gaojingsong
- kaizi1992
- xpenxpen
- 龙儿筝
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- lemonhandsome
- mengjichen
- jbosscn
- zxq_2017
- lzyfn123
- nychen2000
- forestqqqq
- wjianwei666
- ajinn
- zhanjia
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
- kingwell.leng
最新文章列表
使用ASM动态生成类的拦截代理类
文章源自http://www.iteye.com/topic/1123350
使用ASM实现AOP功能,根据现有的CLASS类文件,动态生成它的代理类文件,并在所有的方法前后添加拦截处理,具体如下:
1.生成被代理类的子类,并重写所有方法(除java.lang.Object类定义的方法和main),增加before和after拦截。
2.重新定义被代理类的所有属性(不包括属性的赋值及 ...
使用ASM动态创建接口实现类
使用ASM动态生成一个接口的实现类,接口如下:
public interface ISayHello {
public void MethodA();
public void MethodB();
public void Abs();
}
具体实现如下:
public class InterfaceHandler extends ClassLoader i ...
使用ASM为一个类增加属性
使用ASM可以方便的访问和修改一个类,或者在JVM载入前动态更新一个类也是可以的,如下,
为一个类动态增加一个属性,类Student如下:
public class Student {
private int age;
private String name;
public int getAge() {
return age;
}
public void s ...
使用ASM访问一个类
使用ASM4可以方便的访问一个类文件结构内容,只需要实现ClassVisitor接口或继承ClassAdapter
注意,ASM基于责任链模式设计,有严格的访问顺序,如下:
visit visitSource? visitOuterClass? ( visitAnnotation | visitAttribute )*
( visitInnerClass | visitField | vi ...
使用ASM动态创建类
使用ASM动态创建类,可以不需要java源文件,或者在类被JAVA虚拟机装入内存之前,动态修改类。
如下,动态创建一个类Example.class并执行。
ClassWriter cw = new ClassWriter(0);
cw.visit(V1_5, ACC_PUBLIC, "Example", null, "java/lang/Obje ...
写一个没有Activity的 HelloWorld for android
写这篇文章的目的:研究android dalvikvm bytecode时减去复杂度。
一般的android helloworld 程序都是用eclipse创建一个HelloWorld sample project 然后run,在手机或者虚拟机上出现helloworld。 我写的这面文章是在 terminal上怎么像普通的java 写个static main 函数,后简单的输出HelloWo ...
Java深度历险(一)--Java字节代码的操纵
在一般的Java应用开发过程中,开发人员使用Java的方式比较简单。打开惯用的IDE,编写Java源代码,再利用IDE提供的功能直接运行Java 程序就可以了。这种开发模式背后的过程是:开发人员编写的是Java源代码文件(.java),IDE会负责调用Java的编译器把Java源代码编译成平台无关的字节代码(byte code),以类文件的形式保存在磁盘上(.class)。Java虚拟机(JVM)会 ...