org.springframework.core.annotation

## Class AnnotationAttributes

- java.lang.Object
- - java.util.AbstractMap<K,V>
  - - java.util.HashMap<K,V>
    - - java.util.LinkedHashMap<String,Object>
      - - org.springframework.core.annotation.AnnotationAttributes

- All Implemented Interfaces:
    Serializable, Cloneable, Map<String,Object>

      public class AnnotationAttributes
      extends LinkedHashMap<String,Object>

  `LinkedHashMap` subclass representing annotation attribute key/value pairs as read by Spring's reflection- or ASM-based `AnnotationMetadata` implementations. Provides 'pseudo-reification' to avoid noisy Map generics in the calling code as well as convenience methods for looking up annotation attributes in a type-safe fashion.
  Since:
    3.1.1
  Author:
    Chris Beams
  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class java.util.AbstractMap

      `AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V>`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AnnotationAttributes()` Create a new, empty `AnnotationAttributes` instance.
    `AnnotationAttributes(int initialCapacity)` Create a new, empty `AnnotationAttributes` instance with the given initial capacity to optimize performance.
    `AnnotationAttributes(Map<String,Object> map)` Create a new `AnnotationAttributes` instance, wrapping the provided map and all its key/value pairs.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static AnnotationAttributes` | `fromMap(Map<String,Object> map)` Return an `AnnotationAttributes` instance based on the given map; if the map is already an `AnnotationAttributes` instance, it is casted and returned immediately without creating any new instance; otherwise create a new instance by wrapping the map with the `AnnotationAttributes(Map)` constructor.
    `AnnotationAttributes` | `getAnnotation(String attributeName)`
    `AnnotationAttributes[]` | `getAnnotationArray(String attributeName)`
    `boolean` | `getBoolean(String attributeName)`
    `<T> Class<? extends T>` | `getClass(String attributeName)`
    `Class<?>[]` | `getClassArray(String attributeName)`
    `<E extends Enum<?>> E` | `getEnum(String attributeName)`
    `<N extends Number> N` | `getNumber(String attributeName)`
    `String` | `getString(String attributeName)`
    `String[]` | `getStringArray(String attributeName)`
    `String` | `toString()`

    - ### Methods inherited from class java.util.LinkedHashMap

      `clear, containsValue, entrySet, forEach, get, getOrDefault, keySet, removeEldestEntry, replaceAll, values`

    - ### Methods inherited from class java.util.HashMap

      `clone, compute, computeIfAbsent, computeIfPresent, containsKey, isEmpty, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, size`

    - ### Methods inherited from class java.util.AbstractMap

      `equals, hashCode`

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

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

    - ### Methods inherited from interface java.util.Map

      `compute, computeIfAbsent, computeIfPresent, containsKey, equals, hashCode, isEmpty, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, size`

- - ### Constructor Detail

    - #### AnnotationAttributes

          public AnnotationAttributes()

      Create a new, empty `AnnotationAttributes` instance.

    - #### AnnotationAttributes

          public AnnotationAttributes(int initialCapacity)

      Create a new, empty `AnnotationAttributes` instance with the given initial capacity to optimize performance.
      Parameters:
        `initialCapacity` - initial size of the underlying map

    - #### AnnotationAttributes

          public AnnotationAttributes(Map<String,Object> map)

      Create a new `AnnotationAttributes` instance, wrapping the provided map and all its key/value pairs.
      Parameters:
        `map` - original source of annotation attribute key/value pairs to wrap
      See Also:
        `fromMap(Map)`

  - ### Method Detail

    - #### getString

          public String getString(String attributeName)

    - #### getStringArray

          public String[] getStringArray(String attributeName)

    - #### getBoolean

          public boolean getBoolean(String attributeName)

    - #### getNumber

          public <N extends Number> N getNumber(String attributeName)

    - #### getEnum

          public <E extends Enum<?>> E getEnum(String attributeName)

    - #### getClass

          public <T> Class<? extends T> getClass(String attributeName)

    - #### getClassArray

          public Class<?>[] getClassArray(String attributeName)

    - #### getAnnotation

          public AnnotationAttributes getAnnotation(String attributeName)

    - #### getAnnotationArray

          public AnnotationAttributes[] getAnnotationArray(String attributeName)

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `AbstractMap<String,Object>`

    - #### fromMap

          public static AnnotationAttributes fromMap(Map<String,Object> map)

      Return an `AnnotationAttributes` instance based on the given map; if the map is already an `AnnotationAttributes` instance, it is casted and returned immediately without creating any new instance; otherwise create a new instance by wrapping the map with the `AnnotationAttributes(Map)` constructor.
      Parameters:
        `map` - original source of annotation attribute key/value pairs