快速业务通道

用BCEL设计字节码 - 直接在方法的调用处添加方法 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20
                ConstantClass cc = (ConstantClass)pgen.getConstant(cmr.getClassIndex());                      String nowClassName = cc.getBytes(pgen.getConstantPool());                      ConstantNameAndType cnt = (ConstantNameAndType)pgen.getConstant(cmr.getNameAndTypeIndex());                      String nowMethodName = cnt.getName(pgen.getConstantPool());                      String nowMethodSignature = cnt.getSignature(pgen.getConstantPool());                      //登僅緩圭隈議侭奉議窃,圭隈議兆各,圭隈議禰兆頁倦嚥侭勣紗議匯崑(I)Ljava/lang/String;                      if(nowClassName.equals(classname) && nowMethodName.equals(methodname) && nowMethodSignature.equals(methodSignature)){                          cgen.removeMethod(tempMethodGen.getMethod());                          //孀欺緩圭隈壓list議了崔                          InstructionList beforeList = new InstructionList();                          //枠紗匯倖蕉何延楚隠贋starttime議峙                          LocalVariableGen lvg = tempMethodGen.addLocalVariable("starttime", Type.LONG, null, null);                          beforeList.append(ifact.createInvoke("ToolUtil", "printStart", Type.LONG, Type.NO_ARGS, Constants.INVOKESTATIC));                          beforeList.append(InstructionFactory.createStore(Type.LONG, lvg.getIndex()));                          tempList.insert(ihandle.getPrev().getPrev(), beforeList);                          //紗圭隈朔議旗鷹                          InstructionList afterList = new InstructionList();                          afterList.append(ifact.createConstant(methodname));                          afterList.append(ifact.createLoad(Type.LONG, lvg.getIndex()));                          afterList.append(ifact.createInvoke("ToolUtil", "printEnd", Type.VOID, new Type[]{Type.STRING,Type.LONG}, Constants.INVOKESTATIC));                          tempList.insert(ihandle.getNext().getNext(), afterList);                          //finalize the construted method                          tempMethodGen.stripAttributes(false);                          tempMethodGen.setMaxStack();                          tempMethodGen.setMaxLocals();                          cgen.addMethod(tempMethodGen.getMethod());                          System.out.println(te

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号