用BCEL设计字节码 - 直接在原方法上加指令 - 编程入门网
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-06-20
mport org.apache.bcel.generic.LocalVariableGen; import org.apache.bcel.generic.MethodGen; import org.apache.bcel.generic.ObjectType; import org.apache.bcel.generic.PUSH; import org.apache.bcel.generic.Type; public class BCELTiming2 { private static void modifyWrapper(ClassGen cgen,Method method){ InstructionFactory ifact = new InstructionFactory(cgen); ConstantPoolGen pgen = cgen.getConstantPool(); String cname = cgen.getClassName(); MethodGen wrapgen = new MethodGen(method,cname,pgen); //茅渠宸倖圻栖議圭隈 cgen.removeMethod(method); System.out.println("嬉咫竃宸倖圭隈心心---------------------------------start"); System.out.println(wrapgen.toString()); System.out.println("嬉咫竃宸倖圭隈心心---------------------------------end"); InstructionList ilist = wrapgen.getInstructionList(); System.out.println("心心宸倖圭隈議InstructionList-----------------------------start"); System.out.println(ilist.toString()); System.out.println("心心宸倖圭隈議InstructionList-----------------------------start"); System.out.println("心心宸倖圭隈InstructionList議光倖InstructionHandle議佚連--------------------start"); Iterator handleIt = ilist.iterator(); while(handleIt.hasNext()){ InstructionHandle iHandle = (InstructionHandle)handleIt.next(); System.out.println(iHandle.getAttributes()); System.out.println(iHandle.toString()); } System.out.println("心心宸倖圭隈InstructionList議光倖InstructionHandle議佚連--------------------end"); System.out.println("枠心心緩圭隈議LocalVariableTable議佚連--------------------------------------start"); LocalVariableTable lvt = wrapgen.getLocalVariableTable(pgen); System.out.println(lvt.toString()); System.out.println("枠心心緩圭隈議LocalVariableTable議佚連--------------------------------------end"); LineNumberTable lnt = wrapgen.getLineNumberTable(pgen); System.out.println("LineNumberTable--------------------------------------start"); System.out.println(lnt.toString()); System.out.println("LineNumberTable--------------------------------------end"); Type returnType = wrapgen.getReturnType(); Type[] types = wrapgen.getArgumentTypes(); int slot = wrapgen.isStatic()?0:1;//掲床蓑圭隈slot 0侃哘乎贋刈議頁this //// 宸嶽圭塀嚥Java泌採侃尖圭隈距喘嗤購。斤噐掲床蓑議圭隈?耽肝距喘議及匯倖?咨茄議?歌方頁朕炎斤 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于用BCEL设计字节码 - 直接在原方法上加指令 - 编程入门网的所有评论