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 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 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:
        Object.equals(java.lang.Object)
      • 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:
        Object.hashCode()
      • getParameterAnnotationEntries

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