AnnotatedMethod
Date: 2016-12-04

com.fasterxml.jackson.databind.introspect

## Class AnnotatedMethod

- java.lang.Object
- - com.fasterxml.jackson.databind.introspect.Annotated
  - - com.fasterxml.jackson.databind.introspect.AnnotatedMember
    - - com.fasterxml.jackson.databind.introspect.AnnotatedWithParams
      - - com.fasterxml.jackson.databind.introspect.AnnotatedMethod

- All Implemented Interfaces:
    java.io.Serializable

      public final class AnnotatedMethod
      extends AnnotatedWithParams
      implements java.io.Serializable

  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.lang.reflect.Method` | `_method`
    `protected java.lang.Class<?>[]` | `_paramClasses`
    `protected com.fasterxml.jackson.databind.introspect.AnnotatedMethod.Serialization` | `_serialization` Field that is used to make JDK serialization work with this object.

    - ### Fields inherited from class com.fasterxml.jackson.databind.introspect.AnnotatedWithParams

      `_paramAnnotations`

    - ### Fields inherited from class com.fasterxml.jackson.databind.introspect.AnnotatedMember

      `_annotations, _typeContext`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `AnnotatedMethod(com.fasterxml.jackson.databind.introspect.AnnotatedMethod.Serialization ser)` Method used for JDK serialization support
    `` | `AnnotatedMethod(TypeResolutionContext ctxt, java.lang.reflect.Method method, AnnotationMap classAnn, AnnotationMap[] paramAnnotations)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Object` | `call()` Method that can be used to (try to) call this object without arguments.
    `java.lang.Object` | `call(java.lang.Object[] args)` Method that can be used to (try to) call this object with specified arguments.
    `java.lang.Object` | `call1(java.lang.Object arg)` Method that can be used to (try to) call this object with single arguments.
    `java.lang.Object` | `callOn(java.lang.Object pojo)`
    `java.lang.Object` | `callOnWith(java.lang.Object pojo, java.lang.Object... args)`
    `boolean` | `equals(java.lang.Object o)`
    `java.lang.reflect.Method` | `getAnnotated()` Method that can be used to find actual JDK element that this instance represents.
    `java.lang.Class<?>` | `getDeclaringClass()` Actual physical class in which this memmber was declared.
    `java.lang.String` | `getFullName()`
    `java.lang.reflect.Type` | `getGenericParameterType(int index)` Deprecated.
    `java.lang.reflect.Type[]` | `getGenericParameterTypes()` Deprecated.
    `java.lang.reflect.Type` | `getGenericType()` Deprecated.
    `java.lang.reflect.Method` | `getMember()`
    `int` | `getModifiers()`
    `java.lang.String` | `getName()`
    `int` | `getParameterCount()`
    `JavaType` | `getParameterType(int index)`
    `java.lang.Class<?>` | `getRawParameterType(int index)`
    `java.lang.Class<?>[]` | `getRawParameterTypes()`
    `java.lang.Class<?>` | `getRawReturnType()`
    `java.lang.Class<?>` | `getRawType()` For methods, this returns declared return type, which is only useful with getters (setters do not usually return anything; hence "void" type is returned here)
    `JavaType` | `getType()` For methods, this returns declared return type, which is only useful with getters (setters do not return anything; hence `Void` would be returned here)
    `java.lang.Object` | `getValue(java.lang.Object pojo)` Optional method that can be used to access the value of this member on given object, if this is a supported operation for member type.
    `int` | `hashCode()`
    `boolean` | `hasReturnType()` Helper method that can be used to check whether method returns a value or not; if return type declared as `void`, returns false, otherwise true
    `void` | `setValue(java.lang.Object pojo, java.lang.Object value)` Optional method that can be used to assign value of this member on given object, if this is a supported operation for member type.
    `java.lang.String` | `toString()`
    `AnnotatedMethod` | `withAnnotations(AnnotationMap ann)` Fluent factory method that will construct a new instance that uses specified instance annotations instead of currently configured ones.
    `AnnotatedMethod` | `withMethod(java.lang.reflect.Method m)` Method that constructs a new instance with settings (annotations, parameter annotations) of this instance, but with different physical `Method`.

    - ### Methods inherited from class com.fasterxml.jackson.databind.introspect.AnnotatedWithParams

      `addOrOverrideParam, getAnnotationCount, getParameter, getParameterAnnotations, replaceParameterAnnotations`

    - ### Methods inherited from class com.fasterxml.jackson.databind.introspect.AnnotatedMember

      `addIfNotPresent, addOrOverride, annotations, fixAccess, fixAccess, getAllAnnotations, getAnnotation, getTypeContext, hasAnnotation, hasOneOf`

    - ### Methods inherited from class com.fasterxml.jackson.databind.introspect.Annotated

      `getType, isPublic, withFallBackAnnotationsFrom`

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

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

- - ### Field Detail

    - #### _method

          protected final transient java.lang.reflect.Method _method

    - #### _paramClasses

          protected java.lang.Class<?>[] _paramClasses

    - #### _serialization

          protected com.fasterxml.jackson.databind.introspect.AnnotatedMethod.Serialization _serialization

      Field that is used to make JDK serialization work with this object.
      Since:
        2.1

  - ### Constructor Detail

    - #### AnnotatedMethod

          public AnnotatedMethod(TypeResolutionContext ctxt,
                         java.lang.reflect.Method method,
                         AnnotationMap classAnn,
                         AnnotationMap[] paramAnnotations)

    - #### AnnotatedMethod

          protected AnnotatedMethod(com.fasterxml.jackson.databind.introspect.AnnotatedMethod.Serialization ser)

      Method used for JDK serialization support
      Since:
        2.1

  - ### Method Detail

    - #### withMethod

          public AnnotatedMethod withMethod(java.lang.reflect.Method m)

      Method that constructs a new instance with settings (annotations, parameter annotations) of this instance, but with different physical `Method`.

    - #### withAnnotations

          public AnnotatedMethod withAnnotations(AnnotationMap ann)

      Description copied from class: `Annotated`
      Fluent factory method that will construct a new instance that uses specified instance annotations instead of currently configured ones.
      Specified by:
        `withAnnotations` in class `Annotated`

    - #### getAnnotated

          public java.lang.reflect.Method getAnnotated()

      Description copied from class: `Annotated`
      Method that can be used to find actual JDK element that this instance represents. It is non-null, except for method/constructor parameters which do not have a JDK counterpart.
      Specified by:
        `getAnnotated` in class `Annotated`

    - #### getModifiers

          public int getModifiers()

      Specified by:
        `getModifiers` in class `Annotated`

    - #### getName

          public java.lang.String getName()

      Specified by:
        `getName` in class `Annotated`

    - #### getType

          public JavaType getType()

      For methods, this returns declared return type, which is only useful with getters (setters do not return anything; hence `Void` would be returned here)
      Specified by:
        `getType` in class `Annotated`

    - #### getRawType

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

      For methods, this returns declared return type, which is only useful with getters (setters do not usually return anything; hence "void" type is returned here)
      Specified by:
        `getRawType` in class `Annotated`

    - #### getGenericType

          @Deprecated
          public java.lang.reflect.Type getGenericType()

      Deprecated.
      Description copied from class: `Annotated`
      JDK declared generic type of the annotated element; definition of what exactly this means depends on sub-class. Note that such type can not be reliably resolved without `TypeResolutionContext`, and as a result use of this method was deprecated in Jackson 2.7: see `Annotated.getType()` for replacement.
      Overrides:
        `getGenericType` in class `Annotated`

    - #### call

          public final java.lang.Object call()
                                      throws java.lang.Exception

      Description copied from class: `AnnotatedWithParams`
      Method that can be used to (try to) call this object without arguments. This may succeed or fail, depending on expected number of arguments: caller needs to take care to pass correct number. Exceptions are thrown directly from actual low-level call.

      Note: only works for constructors and static methods.

      Specified by:
        `call` in class `AnnotatedWithParams`
      Throws:
        `java.lang.Exception`

    - #### call

          public final java.lang.Object call(java.lang.Object[] args)
                                      throws java.lang.Exception

      Description copied from class: `AnnotatedWithParams`
      Method that can be used to (try to) call this object with specified arguments. This may succeed or fail, depending on expected number of arguments: caller needs to take care to pass correct number. Exceptions are thrown directly from actual low-level call.

      Note: only works for constructors and static methods.

      Specified by:
        `call` in class `AnnotatedWithParams`
      Throws:
        `java.lang.Exception`

    - #### call1

          public final java.lang.Object call1(java.lang.Object arg)
                                       throws java.lang.Exception

      Description copied from class: `AnnotatedWithParams`
      Method that can be used to (try to) call this object with single arguments. This may succeed or fail, depending on expected number of arguments: caller needs to take care to pass correct number. Exceptions are thrown directly from actual low-level call.

      Note: only works for constructors and static methods.

      Specified by:
        `call1` in class `AnnotatedWithParams`
      Throws:
        `java.lang.Exception`

    - #### callOn

          public final java.lang.Object callOn(java.lang.Object pojo)
                                        throws java.lang.Exception

      Throws:
        `java.lang.Exception`

    - #### callOnWith

          public final java.lang.Object callOnWith(java.lang.Object pojo,
                                    java.lang.Object... args)
                                            throws java.lang.Exception

      Throws:
        `java.lang.Exception`

    - #### getParameterCount

          public int getParameterCount()

      Specified by:
        `getParameterCount` in class `AnnotatedWithParams`

    - #### getRawParameterType

          public java.lang.Class<?> getRawParameterType(int index)

      Specified by:
        `getRawParameterType` in class `AnnotatedWithParams`

    - #### getParameterType

          public JavaType getParameterType(int index)

      Specified by:
        `getParameterType` in class `AnnotatedWithParams`

    - #### getGenericParameterType

          @Deprecated
          public java.lang.reflect.Type getGenericParameterType(int index)

      Deprecated.
      Specified by:
        `getGenericParameterType` in class `AnnotatedWithParams`

    - #### getDeclaringClass

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

      Description copied from class: `AnnotatedMember`
      Actual physical class in which this memmber was declared.
      Specified by:
        `getDeclaringClass` in class `AnnotatedMember`

    - #### getMember

          public java.lang.reflect.Method getMember()

      Specified by:
        `getMember` in class `AnnotatedMember`

    - #### setValue

          public void setValue(java.lang.Object pojo,
                      java.lang.Object value)
                        throws java.lang.IllegalArgumentException

      Description copied from class: `AnnotatedMember`
      Optional method that can be used to assign value of this member on given object, if this is a supported operation for member type.

      This is implemented for fields and single-argument member methods; but not for constructor parameters or other types of methods (like static methods)

      Specified by:
        `setValue` in class `AnnotatedMember`
      Throws:
        `java.lang.IllegalArgumentException`

    - #### getValue

          public java.lang.Object getValue(java.lang.Object pojo)
                                    throws java.lang.IllegalArgumentException

      Description copied from class: `AnnotatedMember`
      Optional method that can be used to access the value of this member on given object, if this is a supported operation for member type.

      This is implemented for fields and no-argument member methods; but not for constructor parameters or other types of methods (like static methods)

      Specified by:
        `getValue` in class `AnnotatedMember`
      Throws:
        `java.lang.IllegalArgumentException`

    - #### getFullName

          public java.lang.String getFullName()

    - #### getRawParameterTypes

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

    - #### getGenericParameterTypes

          @Deprecated
          public java.lang.reflect.Type[] getGenericParameterTypes()

      Deprecated.

    - #### getRawReturnType

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

    - #### hasReturnType

          public boolean hasReturnType()

      Helper method that can be used to check whether method returns a value or not; if return type declared as `void`, returns false, otherwise true
      Since:
        2.4

    - #### toString

          public java.lang.String toString()

      Specified by:
        `toString` in class `Annotated`

    - #### hashCode

          public int hashCode()

      Specified by:
        `hashCode` in class `Annotated`

    - #### equals

          public boolean equals(java.lang.Object o)

      Specified by:
        `equals` in class `Annotated`