Class Method

All Implemented Interfaces:
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.
  • Constructor Details

    • 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 Details

    • 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 Code getCode()
      Returns:
      Code attribute of method, if any
    • getExceptionTable

      public ExceptionTable getExceptionTable()
      Returns:
      ExceptionTable attribute of method, if any, i.e., list all exceptions the method may throw not exception handlers!
    • getLocalVariableTable

      public LocalVariableTable getLocalVariableTable()
      Returns:
      LocalVariableTable of code attribute if any, i.e. the call is forwarded to the Code atribute.
    • getLineNumberTable

      public LineNumberTable getLineNumberTable()
      Returns:
      LineNumberTable of code attribute if any, i.e. the call is forwarded to the Code atribute.
    • toString

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

      public Method copy(ConstantPool _constant_pool)
      Returns:
      deep copy of this method
    • getReturnType

      public Type getReturnType()
      Returns:
      return type of method
    • getArgumentTypes

      public Type[] getArgumentTypes()
      Returns:
      array of method argument types
    • getComparator

      public static BCELComparator getComparator()
      Returns:
      Comparison strategy object
    • setComparator

      public static void setComparator(BCELComparator comparator)
      Parameters:
      comparator - Comparison strategy object
    • equals

      public boolean equals(Object obj)
      Return value as defined by given BCELComparator strategy. By default two method objects are said to be equal when their names and signatures are equal.
      Overrides:
      equals in class Object
      See Also:
    • hashCode

      public int hashCode()
      Return value as defined by given BCELComparator strategy. By default return the hashcode of the method's name XOR signature.
      Overrides:
      hashCode in class Object
      See Also:
    • getParameterAnnotationEntries

      public ParameterAnnotationEntry[] getParameterAnnotationEntries()
      Returns:
      Annotations on the parameters of a method
      Since:
      6.0