快速业务通道

用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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号