groovy.lang

## Class MetaMethod

- java.lang.Object
- - org.codehaus.groovy.reflection.ParameterTypes
  - - groovy.lang.MetaMethod

- All Implemented Interfaces:
    java.lang.Cloneable
  Direct Known Subclasses:
    CachedMethod, CallSiteAwareMetaMethod, ClosureMetaMethod, ClosureStaticMetaMethod, GeneratedMetaMethod, MixinInstanceMetaMethod, ReflectionMetaMethod, TransformMetaMethod

      public abstract class MetaMethod
      extends ParameterTypes
      implements java.lang.Cloneable

  Represents a Method on a Java object a little like `Method` except without using reflection to invoke the method

- - ### Field Summary

    - ### Fields inherited from class org.codehaus.groovy.reflection.ParameterTypes

      `isVargsMethod, nativeParamTypes, parameterTypes`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `MetaMethod()`
    `MetaMethod(java.lang.Class[] pt)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `checkParameters(java.lang.Class[] arguments)` Checks that the given parameters are valid to call this method
    `java.lang.Object` | `clone()`
    `java.lang.Object` | `doMethodInvoke(java.lang.Object object, java.lang.Object[] argumentArray)`
    `protected static boolean` | `equal(CachedClass[] a, CachedClass[] b)`
    `protected static boolean` | `equal(CachedClass[] a, java.lang.Class[] b)`
    `abstract CachedClass` | `getDeclaringClass()`
    `java.lang.String` | `getDescriptor()`
    `abstract int` | `getModifiers()`
    `java.lang.String` | `getMopName()`
    `abstract java.lang.String` | `getName()`
    `abstract java.lang.Class` | `getReturnType()`
    `java.lang.String` | `getSignature()`
    `abstract java.lang.Object` | `invoke(java.lang.Object object, java.lang.Object[] arguments)`
    `boolean` | `isAbstract()`
    `boolean` | `isCacheable()`
    `boolean` | `isMethod(MetaMethod method)`
    `boolean` | `isPrivate()`
    `boolean` | `isProtected()`
    `boolean` | `isPublic()`
    `boolean` | `isSame(MetaMethod method)`
    `boolean` | `isStatic()`
    `java.lang.RuntimeException` | `processDoMethodInvokeException(java.lang.Exception e, java.lang.Object object, java.lang.Object[] argumentArray)`
    `java.lang.String` | `toString()`

    - ### Methods inherited from class org.codehaus.groovy.reflection.ParameterTypes

      `coerceArgumentsToClasses, correctArguments, getNativeParameterTypes, getParameterTypes, getPT, isValidExactMethod, isValidExactMethod, isValidMethod, isValidMethod, isVargsMethod, isVargsMethod, setParametersTypes`

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### MetaMethod

          public MetaMethod()

    - #### MetaMethod

          public MetaMethod(java.lang.Class[] pt)

  - ### Method Detail

    - #### getModifiers

          public abstract int getModifiers()

    - #### getName

          public abstract java.lang.String getName()

    - #### getReturnType

          public abstract java.lang.Class getReturnType()

    - #### getDeclaringClass

          public abstract CachedClass getDeclaringClass()

    - #### invoke

          public abstract java.lang.Object invoke(java.lang.Object object,
                                java.lang.Object[] arguments)

    - #### checkParameters

          public void checkParameters(java.lang.Class[] arguments)

      Checks that the given parameters are valid to call this method
      Parameters:
        `arguments` - the arguments to check
      Throws:
        `java.lang.IllegalArgumentException` - if the parameters are not valid

    - #### isMethod

          public boolean isMethod(MetaMethod method)

    - #### equal

          protected static boolean equal(CachedClass[] a,
                      java.lang.Class[] b)

    - #### equal

          protected static boolean equal(CachedClass[] a,
                      CachedClass[] b)

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### clone

          public java.lang.Object clone()

      Overrides:
        `clone` in class `java.lang.Object`

    - #### isStatic

          public boolean isStatic()

    - #### isAbstract

          public boolean isAbstract()

    - #### isPrivate

          public final boolean isPrivate()

    - #### isProtected

          public final boolean isProtected()

    - #### isPublic

          public final boolean isPublic()

    - #### isSame

          public final boolean isSame(MetaMethod method)

      Parameters:
        `method` - the method to compare against
      Returns:
        true if the given method has the same name, parameters, return type and modifiers but may be defined on another type

    - #### isCacheable

          public boolean isCacheable()

    - #### getDescriptor

          public java.lang.String getDescriptor()

    - #### getSignature

          public java.lang.String getSignature()

    - #### getMopName

          public java.lang.String getMopName()

    - #### processDoMethodInvokeException

          public final java.lang.RuntimeException processDoMethodInvokeException(java.lang.Exception e,
                                                                  java.lang.Object object,
                                                                  java.lang.Object[] argumentArray)

    - #### doMethodInvoke

          public java.lang.Object doMethodInvoke(java.lang.Object object,
                                        java.lang.Object[] argumentArray)