Package: org.codehaus.groovy.runtime.metaclass

## [Java] Class NewInstanceMetaMethod

- org.codehaus.groovy.runtime.metaclass.NewInstanceMetaMethod

-     public class NewInstanceMetaMethod
      extends NewMetaMethod

  A MetaMethod implementation where the underlying method is really a static helper method on some class but it appears to be an instance method on a class. This implementation is used to add new methods to the JDK writing them as normal static methods with the first parameter being the class on which the method is added.

- - Inherited fields
    Fields inherited from class | Fields
    --- | ---
    `class NewMetaMethod` | `EMPTY_TYPE_ARRAY, bytecodeParameterTypes`
    `class ReflectionMetaMethod` | `method`
    `class MetaMethod` | `EMPTY_ARRAY`

  - ### Constructor Summary

    Constructors
    Constructor and description
    `NewInstanceMetaMethod(CachedMethod method)` Constructs a new NewInstanceMetaMethod.

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `public int` | `getModifiers()` Returns the modifiers for this method (PUBLIC without STATIC).
    `` | `public Object` | `invoke(Object object, Object[] arguments)` Invokes the underlying static method with the object as the first argument.
    `` | `public boolean` | `isStatic()` Indicates this method is not static (it appears as an instance method).

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class NewMetaMethod` | `getBytecodeParameterTypes, getDeclaringClass, getOwnerClass`
    `class ReflectionMetaMethod` | `getCachedMethod, getDeclaringClass, getModifiers, getName, getPT, getReturnType, invoke, toString`
    `class MetaMethod` | `checkParameters, clone, doMethodInvoke, equal, equal, getDeclaringClass, getDescriptor, getModifiers, getMopName, getName, getReturnType, getSignature, invoke, isAbstract, isCacheable, isDefault, isMethod, isSame, processDoMethodInvokeException, toString`
    `class ParameterTypes` | `coerceArgumentsToClasses, correctArguments, getNativeParameterTypes, getPT, getParameterTypes, isValidExactMethod, isValidExactMethod, isValidMethod, isValidMethod, isVargsMethod, isVargsMethod, setParametersTypes`

- - ### Constructor Detail

    - #### public NewInstanceMetaMethod(CachedMethod method)

      Constructs a new NewInstanceMetaMethod.

      Parameters:
        `method` - the cached static helper method

  - ### Method Detail

    - #### public int getModifiers()

      Returns the modifiers for this method (PUBLIC without STATIC).

      Returns:
        PUBLIC modifier only

    - #### public Object invoke(Object object, Object[] arguments)

      Invokes the underlying static method with the object as the first argument. This adapts instance method calls to the underlying static method signature.

      Parameters:
        `object` - the object to invoke the method on (passed as first argument to static method)
        `arguments` - the method arguments
      Returns:
        the method return value

    - #### public boolean isStatic()

      Indicates this method is not static (it appears as an instance method).

      Returns:
        false, as this wraps a static method to appear as an instance method