⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 methodgen.html

📁 一个用于对.class文件进行插桩的开源工具
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd"><!--NewPage--><HTML><HEAD><!-- Generated by javadoc on Sat Dec 15 07:40:16 EST 2001 --><TITLE>bcel API: Class  MethodGen</TITLE><LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style"></HEAD><BODY BGCOLOR="white"><!-- ========== START OF NAVBAR ========== --><A NAME="navbar_top"><!-- --></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0"><TR><TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><A NAME="navbar_top_firstrow"><!-- --></A><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">  <TR ALIGN="center" VALIGN="top">  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/MethodGen.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>  </TR></TABLE></TD><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM></EM></TD></TR><TR><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">&nbsp;<A HREF="../../../../org/apache/bcel/generic/LXOR.html"><B>PREV CLASS</B></A>&nbsp;&nbsp;<A HREF="../../../../org/apache/bcel/generic/MONITORENTER.html"><B>NEXT CLASS</B></A></FONT></TD><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">  <A HREF="../../../../index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;&nbsp;<A HREF="MethodGen.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD></TR><TR><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">  SUMMARY: &nbsp;INNER&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_org.apache.bcel.generic.FieldGenOrMethodGen">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">DETAIL: &nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD></TR></TABLE><!-- =========== END OF NAVBAR =========== --><HR><!-- ======== START OF CLASS DATA ======== --><H2><FONT SIZE="-1">org.apache.bcel.generic</FONT><BR>Class  MethodGen</H2><PRE>java.lang.Object  |  +--<A HREF="../../../../org/apache/bcel/classfile/AccessFlags.html">org.apache.bcel.classfile.AccessFlags</A>        |        +--<A HREF="../../../../org/apache/bcel/generic/FieldGenOrMethodGen.html">org.apache.bcel.generic.FieldGenOrMethodGen</A>              |              +--<B>org.apache.bcel.generic.MethodGen</B></PRE><DL><DT><B>All Implemented Interfaces:</B> <DD>java.lang.Cloneable, <A HREF="../../../../org/apache/bcel/generic/NamedAndTyped.html">NamedAndTyped</A></DD></DL><HR><DL><DT>public class <B>MethodGen</B><DT>extends <A HREF="../../../../org/apache/bcel/generic/FieldGenOrMethodGen.html">FieldGenOrMethodGen</A></DL><P>Template class for building up a method. This is done by defining exception handlers, adding thrown exceptions, local variables and attributes, whereas the `LocalVariableTable' and `LineNumberTable' attributes will be set automatically for the code. Use stripAttributes() if you don't like this. While generating code it may be necessary to insert NOP operations. You can use the `removeNOPs' method to get rid off them. The resulting method object can be obtained via the `getMethod()' method.<P><DL><DT><B>Version: </B><DD>$Id: MethodGen.java,v 1.1.1.1 2001/10/29 20:00:24 jvanzyl Exp $</DD><DT><B>Author: </B><DD><A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>, <A HREF="http://www.vmeng.com/beard">Patrick C. Beard</A></DD><DT><B>See Also: </B><DD><A HREF="../../../../org/apache/bcel/generic/InstructionList.html"><CODE>InstructionList</CODE></A>, <A HREF="../../../../org/apache/bcel/classfile/Method.html"><CODE>Method</CODE></A></DL><HR><P><!-- ======== INNER CLASS SUMMARY ======== --><!-- =========== FIELD SUMMARY =========== --><A NAME="fields_inherited_from_class_org.apache.bcel.generic.FieldGenOrMethodGen"><!-- --></A><TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"><TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor"><TD><B>Fields inherited from class org.apache.bcel.generic.<A HREF="../../../../org/apache/bcel/generic/FieldGenOrMethodGen.html">FieldGenOrMethodGen</A></B></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD><CODE><A HREF="../../../../org/apache/bcel/generic/FieldGenOrMethodGen.html#cp">cp</A>, <A HREF="../../../../org/apache/bcel/generic/FieldGenOrMethodGen.html#name">name</A>, <A HREF="../../../../org/apache/bcel/generic/FieldGenOrMethodGen.html#type">type</A></CODE></TD></TR></TABLE>&nbsp;<A NAME="fields_inherited_from_class_org.apache.bcel.classfile.AccessFlags"><!-- --></A><TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"><TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor"><TD><B>Fields inherited from class org.apache.bcel.classfile.<A HREF="../../../../org/apache/bcel/classfile/AccessFlags.html">AccessFlags</A></B></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD><CODE><A HREF="../../../../org/apache/bcel/classfile/AccessFlags.html#access_flags">access_flags</A></CODE></TD></TR></TABLE>&nbsp;<!-- ======== CONSTRUCTOR SUMMARY ======== --><A NAME="constructor_summary"><!-- --></A><TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TD COLSPAN=2><FONT SIZE="+2"><B>Constructor Summary</B></FONT></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD><CODE><B><A HREF="../../../../org/apache/bcel/generic/MethodGen.html#MethodGen(int, org.apache.bcel.generic.Type, org.apache.bcel.generic.Type[], java.lang.String[], java.lang.String, java.lang.String, org.apache.bcel.generic.InstructionList, org.apache.bcel.generic.ConstantPoolGen)">MethodGen</A></B>(int&nbsp;access_flags,          <A HREF="../../../../org/apache/bcel/generic/Type.html">Type</A>&nbsp;return_type,          <A HREF="../../../../org/apache/bcel/generic/Type.html">Type</A>[]&nbsp;arg_types,          java.lang.String[]&nbsp;arg_names,          java.lang.String&nbsp;method_name,          java.lang.String&nbsp;class_name,          <A HREF="../../../../org/apache/bcel/generic/InstructionList.html">InstructionList</A>&nbsp;il,          <A HREF="../../../../org/apache/bcel/generic/ConstantPoolGen.html">ConstantPoolGen</A>&nbsp;cp)</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Declare method.</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD><CODE><B><A HREF="../../../../org/apache/bcel/generic/MethodGen.html#MethodGen(org.apache.bcel.classfile.Method, java.lang.String, org.apache.bcel.generic.ConstantPoolGen)">MethodGen</A></B>(<A HREF="../../../../org/apache/bcel/classfile/Method.html">Method</A>&nbsp;m,          java.lang.String&nbsp;class_name,          <A HREF="../../../../org/apache/bcel/generic/ConstantPoolGen.html">ConstantPoolGen</A>&nbsp;cp)</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Instantiate from existing method.</TD></TR></TABLE>&nbsp;<!-- ========== METHOD SUMMARY =========== --><A NAME="method_summary"><!-- --></A><TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TD COLSPAN=2><FONT SIZE="+2"><B>Method Summary</B></FONT></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;void</CODE></FONT></TD><TD><CODE><B><A HREF="../../../../org/apache/bcel/generic/MethodGen.html#addCodeAttribute(org.apache.bcel.classfile.Attribute)">addCodeAttribute</A></B>(<A HREF="../../../../org/apache/bcel/classfile/Attribute.html">Attribute</A>&nbsp;a)</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add an attribute to the code.</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;void</CODE></FONT></TD><TD><CODE><B><A HREF="../../../../org/apache/bcel/generic/MethodGen.html#addException(java.lang.String)">addException</A></B>(java.lang.String&nbsp;class_name)</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add an exception possibly thrown by this method.</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;<A HREF="../../../../org/apache/bcel/generic/CodeExceptionGen.html">CodeExceptionGen</A></CODE></FONT></TD><TD><CODE><B><A HREF="../../../../org/apache/bcel/generic/MethodGen.html#addExceptionHandler(org.apache.bcel.generic.InstructionHandle, org.apache.bcel.generic.InstructionHandle, org.apache.bcel.generic.InstructionHandle, org.apache.bcel.generic.ObjectType)">addExceptionHandler</A></B>(<A HREF="../../../../org/apache/bcel/generic/InstructionHandle.html">InstructionHandle</A>&nbsp;start_pc,                    <A HREF="../../../../org/apache/bcel/generic/InstructionHandle.html">InstructionHandle</A>&nbsp;end_pc,                    <A HREF="../../../../org/apache/bcel/generic/InstructionHandle.html">InstructionHandle</A>&nbsp;handler_pc,                    <A HREF="../../../../org/apache/bcel/generic/ObjectType.html">ObjectType</A>&nbsp;catch_type)</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add an exception handler, i.e., specify region where a handler is active and an instruction where the actual handling is done.</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;<A HREF="../../../../org/apache/bcel/generic/LineNumberGen.html">LineNumberGen</A></CODE></FONT></TD><TD><CODE><B><A HREF="../../../../org/apache/bcel/generic/MethodGen.html#addLineNumber(org.apache.bcel.generic.InstructionHandle, int)">addLineNumber</A></B>(<A HREF="../../../../org/apache/bcel/generic/InstructionHandle.html">InstructionHandle</A>&nbsp;ih,              int&nbsp;src_line)</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Give an instruction a line number corresponding to the source code line.</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;<A HREF="../../../../org/apache/bcel/generic/LocalVariableGen.html">LocalVariableGen</A></CODE></FONT></TD><TD><CODE><B><A HREF="../../../../org/apache/bcel/generic/MethodGen.html#addLocalVariable(java.lang.String, org.apache.bcel.generic.Type, org.apache.bcel.generic.InstructionHandle, org.apache.bcel.generic.InstructionHandle)">addLocalVariable</A></B>(java.lang.String&nbsp;name,                 <A HREF="../../../../org/apache/bcel/generic/Type.html">Type</A>&nbsp;type,                 <A HREF="../../../../org/apache/bcel/generic/InstructionHandle.html">InstructionHandle</A>&nbsp;start,                 <A HREF="../../../../org/apache/bcel/generic/InstructionHandle.html">InstructionHandle</A>&nbsp;end)</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds a local variable to this method and assigns an index automatically.</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;<A HREF="../../../../org/apache/bcel/generic/LocalVariableGen.html">LocalVariableGen</A></CODE></FONT></TD><TD><CODE><B><A HREF="../../../../org/apache/bcel/generic/MethodGen.html#addLocalVariable(java.lang.String, org.apache.bcel.generic.Type, int, org.apache.bcel.generic.InstructionHandle, org.apache.bcel.generic.InstructionHandle)">addLocalVariable</A></B>(java.lang.String&nbsp;name,                 <A HREF="../../../../org/apache/bcel/generic/Type.html">Type</A>&nbsp;type,                 int&nbsp;slot,                 <A HREF="../../../../org/apache/bcel/generic/InstructionHandle.html">InstructionHandle</A>&nbsp;start,                 <A HREF="../../../../org/apache/bcel/generic/InstructionHandle.html">InstructionHandle</A>&nbsp;end)</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds a local variable to this method.</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;void</CODE></FONT></TD><TD><CODE><B><A HREF="../../../../org/apache/bcel/generic/MethodGen.html#addObserver(org.apache.bcel.generic.MethodObserver)">addObserver</A></B>(<A HREF="../../../../org/apache/bcel/generic/MethodObserver.html">MethodObserver</A>&nbsp;o)</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add observer for this object.</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;<A HREF="../../../../org/apache/bcel/generic/MethodGen.html">MethodGen</A></CODE></FONT></TD><TD><CODE><B><A HREF="../../../../org/apache/bcel/generic/MethodGen.html#copy(java.lang.String, org.apache.bcel.generic.ConstantPoolGen)">copy</A></B>(java.lang.String&nbsp;class_name,     <A HREF="../../../../org/apache/bcel/generic/ConstantPoolGen.html">ConstantPoolGen</A>&nbsp;cp)</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;java.lang.String</CODE></FONT></TD><TD><CODE><B><A HREF="../../../../org/apache/bcel/generic/MethodGen.html#getArgumentName(int)">getArgumentName</A></B>(int&nbsp;i)</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>&nbsp;java.lang.String[]</CODE></FONT></TD><TD><CODE><B><A HREF="../../../../org/apache/bcel/generic/MethodGen.html#getArgumentNames()">getArgumentNames</A></B>()</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor">

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -