## org.apache.bcel.classfile
Class Method

    java.lang.Object
      |
      +--org.apache.bcel.classfile.AccessFlags
            |
            +--org.apache.bcel.classfile.FieldOrMethod
                  |
                  +--org.apache.bcel.classfile.Method

All Implemented Interfaces:
  java.lang.Cloneable, Node

public final class Method
extends FieldOrMethod

This class represents the method info structure, i.e., the representation for a method in the class. See JVM specification for details. A method has access flags, a name, a signature and a number of attributes.

Version:
  $Id: Method.java,v 1.1.1.1 2001/10/29 20:00:02 jvanzyl Exp $
Author:
  M. Dahm

Fields inherited from class org.apache.bcel.classfile.FieldOrMethod
`attributes, attributes_count, constant_pool, name_index, signature_index`

Fields inherited from class org.apache.bcel.classfile.AccessFlags
`access_flags`

Constructor Summary
`Method()` Empty constructor, all attributes have to be defined via `setXXX' methods.
`Method(int access_flags, int name_index, int signature_index, Attribute[] attributes, ConstantPool constant_pool)`
`Method(Method c)` Initialize from another object.

Method Summary
`void` `accept(Visitor v)` Called by objects that are traversing the nodes of the tree implicitely defined by the contents of a Java class.
`Method` `copy(ConstantPool constant_pool)`
`Code` `getCode()`
`ExceptionTable` `getExceptionTable()`
`LineNumberTable` `getLineNumberTable()`
`LocalVariableTable` `getLocalVariableTable()`
`java.lang.String` `toString()` Return string representation close to declaration format, `public static void main(String[] args) throws IOException', e.g.

Methods inherited from class org.apache.bcel.classfile.FieldOrMethod
`copy_, dump, getAttributes, getConstantPool, getName, getNameIndex, getSignature, getSignatureIndex, setAttributes, setConstantPool, setNameIndex, setSignatureIndex`

Methods inherited from class org.apache.bcel.classfile.AccessFlags
`getAccessFlags, isAbstract, isAbstract, isFinal, isFinal, isInterface, isInterface, isNative, isNative, isPrivate, isPrivate, isProtected, isProtected, isPublic, isPublic, isStatic, isStatic, isStrictfp, isStrictfp, isSynchronized, isSynchronized, isTransient, isTransient, isVolatile, isVolatile, setAccessFlags`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### Method

    public Method()

  Empty constructor, all attributes have to be defined via `setXXX' methods. Use at your own risk.

### Method

    public Method(Method c)

  Initialize from another object. Note that both objects use the same references (shallow copy). Use clone() for a physical copy.

### Method

    public Method(int access_flags,
                  int name_index,
                  int signature_index,
                  Attribute[] attributes,
                  ConstantPool constant_pool)

  Parameters:
    `access_flags` - Access rights of method
    `name_index` - Points to field name in constant pool
    `signature_index` - Points to encoded signature
    `attributes` - Collection of attributes
    `constant_pool` - Array of constants

Method Detail

### accept

    public void accept(Visitor v)

  Called by objects that are traversing the nodes of the tree implicitely defined by the contents of a Java class. I.e., the hierarchy of methods, fields, attributes, etc. spawns a tree of objects.
  Parameters:
    `v` - Visitor object

### getCode

    public final Code getCode()

  Returns:
    Code attribute of method, if any

### getExceptionTable

    public final ExceptionTable getExceptionTable()

  Returns:
    ExceptionTable attribute of method, if any, i.e., list all exceptions the method may throw not exception handlers!

### getLocalVariableTable

    public final LocalVariableTable getLocalVariableTable()

  Returns:
    LocalVariableTable of code attribute if any, i.e. the call is forwarded to the Code atribute.

### getLineNumberTable

    public final LineNumberTable getLineNumberTable()

  Returns:
    LineNumberTable of code attribute if any, i.e. the call is forwarded to the Code atribute.

### toString

    public final java.lang.String toString()

  Return string representation close to declaration format, `public static void main(String[] args) throws IOException', e.g.
  Overrides:
    `toString` in class `java.lang.Object`
  Returns:
    String representation of the method.

### copy

    public final Method copy(ConstantPool constant_pool)

  Returns:
    deep copy of this method