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
`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)