## com.fasterxml.jackson.databind.type
Class ArrayType

    java.lang.Object
      com.fasterxml.jackson.core.type.ResolvedType
          com.fasterxml.jackson.databind.JavaType
              com.fasterxml.jackson.databind.type.TypeBase
                  com.fasterxml.jackson.databind.type.ArrayType

All Implemented Interfaces:
  JsonSerializable

    public final class ArrayType

extends TypeBase

Array types represent Java arrays, both primitive and object valued. Further, Object-valued arrays can have element type of any other legal `JavaType`.

Field Summary
`protected JavaType` `_componentType` Type of elements in the array.
`protected Object` `_emptyArray` We will also keep track of shareable instance of empty array, since it usually needs to be constructed any way; and because it is essentially immutable and thus can be shared.

Fields inherited from class com.fasterxml.jackson.databind.JavaType
`_class, _hashCode, _typeHandler, _valueHandler`

Method Summary
`protected JavaType` `_narrow(Class<?> subclass)` Handling of narrowing conversions for arrays is trickier: for now, it is not even allowed.
`protected String` `buildCanonicalName()`
`static ArrayType` `construct(JavaType componentType, Object valueHandler, Object typeHandler)`
`JavaType` `containedType(int index)`
`int` `containedTypeCount()`
`String` `containedTypeName(int index)` Not sure what symbolic name is used internally, if any; let's follow naming of Collection types here.
`boolean` `equals(Object o)`
`JavaType` `getContentType()`
`StringBuilder` `getErasedSignature(StringBuilder sb)` Method for accessing signature without generic type information, in form compatible with all versions of JVM, and specifically used for type descriptions when generating byte code.
`StringBuilder` `getGenericSignature(StringBuilder sb)`
`boolean` `hasGenericTypes()`
`boolean` `isAbstract()` For some odd reason, modifiers for array classes would claim they are abstract types.
`boolean` `isArrayType()`
`boolean` `isConcrete()` For some odd reason, modifiers for array classes would claim they are abstract types.
`boolean` `isContainerType()`
`JavaType` `narrowContentsBy(Class<?> contentClass)` For array types, both main type and content type can be modified; but ultimately they are interchangeable.
`String` `toString()`
`JavaType` `widenContentsBy(Class<?> contentClass)`
`ArrayType` `withContentTypeHandler(Object h)` "Copy method" that will construct a new instance that is identical to this instance, except that its content type will have specified type handler assigned.
`ArrayType` `withContentValueHandler(Object h)` "Copy method" that will construct a new instance that is identical to this instance, except that it will have specified content value handler assigned.
`ArrayType` `withTypeHandler(Object h)` "Copy method" that will construct a new instance that is identical to this instance, except that it will have specified type handler assigned.
`ArrayType` `withValueHandler(Object h)` "Copy method" that will construct a new instance that is identical to this instance, except that it will have specified value handler assigned.

Methods inherited from class com.fasterxml.jackson.databind.type.TypeBase
`_classSignature, getTypeHandler, getValueHandler, serialize, serializeWithType, toCanonical`

Methods inherited from class com.fasterxml.jackson.databind.JavaType
`_assertSubclass, _widen, forcedNarrowBy, getErasedSignature, getGenericSignature, getKeyType, getRawClass, hashCode, hasRawClass, isCollectionLikeType, isEnumType, isFinal, isInterface, isMapLikeType, isPrimitive, isThrowable, narrowBy, widenBy`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Field Detail

### _componentType

    protected final JavaType _componentType

  Type of elements in the array.

### _emptyArray

    protected final Object _emptyArray

  We will also keep track of shareable instance of empty array, since it usually needs to be constructed any way; and because it is essentially immutable and thus can be shared.

Method Detail

### construct

    public static ArrayType construct(JavaType componentType,
                                      Object valueHandler,
                                      Object typeHandler)

### withTypeHandler

    public ArrayType withTypeHandler(Object h)

  Description copied from class: `JavaType`
  "Copy method" that will construct a new instance that is identical to this instance, except that it will have specified type handler assigned.

  Specified by:
    `withTypeHandler` in class `JavaType`
  Returns:
    Newly created type instance

### withContentTypeHandler

    public ArrayType withContentTypeHandler(Object h)

  Description copied from class: `JavaType`
  "Copy method" that will construct a new instance that is identical to this instance, except that its content type will have specified type handler assigned.

  Specified by:
    `withContentTypeHandler` in class `JavaType`
  Returns:
    Newly created type instance

### withValueHandler

    public ArrayType withValueHandler(Object h)

  Description copied from class: `JavaType`
  "Copy method" that will construct a new instance that is identical to this instance, except that it will have specified value handler assigned.

  Specified by:
    `withValueHandler` in class `JavaType`
  Returns:
    Newly created type instance

### withContentValueHandler

    public ArrayType withContentValueHandler(Object h)

  Description copied from class: `JavaType`
  "Copy method" that will construct a new instance that is identical to this instance, except that it will have specified content value handler assigned.

  Specified by:
    `withContentValueHandler` in class `JavaType`
  Returns:
    Newly created type instance

### buildCanonicalName

    protected String buildCanonicalName()

  Specified by:
    `buildCanonicalName` in class `TypeBase`

### _narrow

    protected JavaType _narrow(Class<?> subclass)

  Handling of narrowing conversions for arrays is trickier: for now, it is not even allowed.

  Specified by:
    `_narrow` in class `JavaType`

### narrowContentsBy

    public JavaType narrowContentsBy(Class<?> contentClass)

  For array types, both main type and content type can be modified; but ultimately they are interchangeable.

  Specified by:
    `narrowContentsBy` in class `JavaType`

### widenContentsBy

    public JavaType widenContentsBy(Class<?> contentClass)

  Specified by:
    `widenContentsBy` in class `JavaType`

### isArrayType

    public boolean isArrayType()

  Overrides:
    `isArrayType` in class `JavaType`

### isAbstract

    public boolean isAbstract()

  For some odd reason, modifiers for array classes would claim they are abstract types. Not so, at least for our purposes.

  Overrides:
    `isAbstract` in class `JavaType`

### isConcrete

    public boolean isConcrete()

  For some odd reason, modifiers for array classes would claim they are abstract types. Not so, at least for our purposes.

  Overrides:
    `isConcrete` in class `JavaType`

### hasGenericTypes

    public boolean hasGenericTypes()

  Overrides:
    `hasGenericTypes` in class `JavaType`

### containedTypeName

    public String containedTypeName(int index)

  Not sure what symbolic name is used internally, if any; let's follow naming of Collection types here. Should not really matter since array types have no super types.

  Overrides:
    `containedTypeName` in class `JavaType`

### isContainerType

    public boolean isContainerType()

  Specified by:
    `isContainerType` in class `JavaType`
  Returns:
    True if type represented is a container type; this includes array, Map and Collection types.

### getContentType

    public JavaType getContentType()

  Overrides:
    `getContentType` in class `JavaType`

### containedTypeCount

    public int containedTypeCount()

  Overrides:
    `containedTypeCount` in class `JavaType`

### containedType

    public JavaType containedType(int index)

  Overrides:
    `containedType` in class `JavaType`

### getGenericSignature

    public StringBuilder getGenericSignature(StringBuilder sb)

  Specified by:
    `getGenericSignature` in class `TypeBase`
  Parameters:
    `sb` - StringBuilder to append signature to
  Returns:
    StringBuilder that was passed in; returned to allow call chaining

### getErasedSignature

    public StringBuilder getErasedSignature(StringBuilder sb)

  Description copied from class: `JavaType`
  Method for accessing signature without generic type information, in form compatible with all versions of JVM, and specifically used for type descriptions when generating byte code.

  Specified by:
    `getErasedSignature` in class `TypeBase`
  Parameters:
    `sb` - StringBuilder to append signature to
  Returns:
    StringBuilder that was passed in; returned to allow call chaining

### toString

    public String toString()

  Specified by:
    `toString` in class `JavaType`

### equals

    public boolean equals(Object o)

  Specified by:
    `equals` in class `JavaType`

Copyright © 2012 fasterxml.com. All Rights Reserved.