Package org.zkoss.xel.util

## Class MethodFunction

- java.lang.Object
- - org.zkoss.lang.reflect.SerializableMethod
  - - org.zkoss.xel.util.MethodFunction

- All Implemented Interfaces:
    `java.io.Serializable`, `java.lang.Cloneable`, `Function`

      public class MethodFunction
      extends SerializableMethod
      implements Function

  A XEL function based on java.lang.reflect.Method. It is used by implementation of `ExpressionFactory` The user of XEL expressions rarely need it.
  Since:
    3.0.0
  Author:
    tomyeh
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `MethodFunction​(java.lang.reflect.Method method)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.lang.Class<?>[]` | `getParameterTypes()` | Returns an array of Class objects that represent the formal parameter types, in declaration order, of the method represented by this Method object.
    `java.lang.Class<?>` | `getReturnType()` | Returns a Class object that represents the formal return type of the method represented by this Method object.
    `java.lang.Object` | `invoke​(java.lang.Object obj, java.lang.Object... args)` | Invokes this method with the specified arguments.
    `java.lang.reflect.Method` | `toMethod()` | Converts this function to a method, or null if unable to convert.

    - ### Methods inherited from class org.zkoss.lang.reflect.SerializableMethod

      `clone, equals, getMethod, hashCode, toString`

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

      `finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### MethodFunction

          public MethodFunction​(java.lang.reflect.Method method)

  - ### Method Detail

    - #### getParameterTypes

          public java.lang.Class<?>[] getParameterTypes()

      Description copied from interface: `Function`
      Returns an array of Class objects that represent the formal parameter types, in declaration order, of the method represented by this Method object.

      Returns an array of length 0 if the underlying method takes no parameters.

      Specified by:
        `getParameterTypes` in interface `Function`

    - #### getReturnType

          public java.lang.Class<?> getReturnType()

      Description copied from interface: `Function`
      Returns a Class object that represents the formal return type of the method represented by this Method object.
      Specified by:
        `getReturnType` in interface `Function`

    - #### invoke

          public java.lang.Object invoke​(java.lang.Object obj,
                                         java.lang.Object... args)
                                  throws java.lang.Exception

      Description copied from interface: `Function`
      Invokes this method with the specified arguments.
      Specified by:
        `invoke` in interface `Function`
      Parameters:
        `obj` - the object the underlying method is invoked from. It is always null if this function is invoked in an XEL expression. It is reserved for more sophisticated expressions, such as ZK Spreadsheet's expressions.
        `args` - the arguments used for the method call. If null, an Object array with zero length is assumed.
      Throws:
        `java.lang.Exception`

    - #### toMethod

          public java.lang.reflect.Method toMethod()

      Description copied from interface: `Function`
      Converts this function to a method, or null if unable to convert.
      Specified by:
        `toMethod` in interface `Function`