本月博客排行
-
第1名
龙儿筝 -
第2名
johnsmith9th -
第3名
wy_19921005 - zysnba
- sgqt
- lemonhandsome
年度博客排行
-
第1名
宏天软件 -
第2名
青否云后端云 -
第3名
龙儿筝 - gashero
- wallimn
- vipbooks
- benladeng5225
- wy_19921005
- fantaxy025025
- qepwqnp
- e_e
- 解宜然
- zysnba
- ssydxa219
- sam123456gz
- javashop
- arpenker
- tanling8334
- kaizi1992
- xpenxpen
- gaojingsong
- wiseboyloves
- xiangjie88
- ranbuijj
- ganxueyun
- sichunli_030
- xyuma
- wangchen.ily
- jh108020
- lemonhandsome
- zxq_2017
- jbosscn
- Xeden
- luxurioust
- lzyfn123
- zhanjia
- johnsmith9th
- forestqqqq
- ajinn
- nychen2000
- wjianwei666
- hanbaohong
- daizj
- 喧嚣求静
- silverend
- mwhgJava
- kingwell.leng
- lchb139128
- lich0079
- kristy_yy
最新文章列表
使用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)会 ...