Class Method

All Implemented Interfaces:
Cloneable, Node

public final class Method extends FieldOrMethod
This class represents the method info structure, that is, 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.
  • Field Details

    • EMPTY_ARRAY

      public static final Method[] EMPTY_ARRAY
      Empty array constant.
      Since:
      6.6.0
  • Constructor Details

    • Method

      public Method()
      Empty constructor, all attributes have to be defined via 'setXXX' methods. Use at your own risk.
    • Method

      public Method(int accessFlags, int nameIndex, int signatureIndex, Attribute[] attributes, ConstantPool constantPool)
      Constructs a Method.
      Parameters:
      accessFlags - Access rights of method.
      nameIndex - Points to field name in constant pool.
      signatureIndex - Points to encoded signature.
      attributes - Collection of attributes.
      constantPool - Array of constants.
    • 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.
      Parameters:
      c - Source to copy.
  • Method Details

    • getComparator

      Gets the comparison strategy object.
      Returns:
      Comparison strategy object.
    • setComparator

      public static void setComparator(BCELComparator<Method> comparator)
      Sets the comparison strategy object.
      Parameters:
      comparator - Comparison strategy object.
    • accept

      public void accept(Visitor v)
      Called by objects that are traversing the nodes of the tree implicitly 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.
    • copy

      public Method copy(ConstantPool constantPool)
      Creates a deep copy of this method.
      Parameters:
      constantPool - the constant pool.
      Returns:
      deep copy of this method.
    • 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:
    • getArgumentTypes

      public Type[] getArgumentTypes()
      Gets array of method argument types.
      Returns:
      array of method argument types.
    • getCode

      public Code getCode()
      Gets Code attribute of method, if any.
      Returns:
      Code attribute of method, if any.
    • getExceptionTable

      Gets ExceptionTable attribute of method, if any.
      Returns:
      ExceptionTable attribute of method, if any, that is, list all exceptions the method may throw not exception handlers.
    • getLineNumberTable

      Gets LineNumberTable of code attribute if any.
      Returns:
      LineNumberTable of code attribute if any, for example the call is forwarded to the Code attribute.
    • getLocalVariableTable

      Gets LocalVariableTable of code attribute if any.
      Returns:
      LocalVariableTable of code attribute if any, for example the call is forwarded to the Code attribute.
    • getLocalVariableTypeTable

      Gets the local variable type table attribute LocalVariableTypeTable.
      Returns:
      LocalVariableTypeTable of code attribute if any, for example the call is forwarded to the Code attribute.
      Since:
      6.10.0
    • getParameterAnnotationEntries

      Gets Annotations on the parameters of a method.
      Returns:
      Annotations on the parameters of a method.
      Since:
      6.0
    • getReturnType

      public Type getReturnType()
      Gets return type of method.
      Returns:
      return type of method.
    • hashCode

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

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