类 AnnotationAttributes

java.lang.Object
java.util.AbstractMap<K,V>
java.util.HashMap<K,V>
java.util.LinkedHashMap<String,Object>
cn.taketoday.core.annotation.AnnotationAttributes
所有已实现的接口:
Serializable, Cloneable, Map<String,Object>

public class AnnotationAttributes extends LinkedHashMap<String,Object>
LinkedHashMap subclass representing annotation attribute key-value pairs as read by AnnotationUtils, AnnotatedElementUtils, and reflection- and 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.

从以下版本开始:
4.0
作者:
Chris Beams, Sam Brannen, Juergen Hoeller
另请参阅:
  • 字段详细资料

  • 构造器详细资料

    • 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.
      参数:
      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.
      参数:
      map - original source of annotation attribute key-value pairs
      另请参阅:
    • AnnotationAttributes

      public AnnotationAttributes(AnnotationAttributes other)
      Create a new AnnotationAttributes instance, wrapping the provided map and all its key-value pairs.
      参数:
      other - original source of annotation attribute key-value pairs
      另请参阅:
    • AnnotationAttributes

      public AnnotationAttributes(Class<? extends Annotation> annotationType)
      Create a new, empty AnnotationAttributes instance for the specified annotationType.
      参数:
      annotationType - the type of annotation represented by this AnnotationAttributes instance; never null
    • AnnotationAttributes

      public AnnotationAttributes(String annotationType, @Nullable ClassLoader classLoader)
      Create a new, empty AnnotationAttributes instance for the specified annotationType.
      参数:
      annotationType - the annotation type name represented by this AnnotationAttributes instance; never null
      classLoader - the ClassLoader to try to load the annotation type on, or null to just store the annotation type name
  • 方法详细资料

    • annotationType

      @Nullable public Class<? extends Annotation> annotationType()
      Get the type of annotation represented by this AnnotationAttributes.
      返回:
      the annotation type, or null if unknown
    • getString

      public String getString(String attributeName)
      Get the value stored under the specified attributeName as a string.
      参数:
      attributeName - the name of the attribute to get; never null or empty
      返回:
      the value
      抛出:
      IllegalArgumentException - if the attribute does not exist or if it is not of the expected type
    • getStringArray

      public String[] getStringArray(String attributeName)
      Get the value stored under the specified attributeName as an array of strings.

      If the value stored under the specified attributeName is a string, it will be wrapped in a single-element array before returning it.

      参数:
      attributeName - the name of the attribute to get; never null or empty
      返回:
      the value
      抛出:
      IllegalArgumentException - if the attribute does not exist or if it is not of the expected type
    • getBoolean

      public boolean getBoolean(String attributeName)
      Get the value stored under the specified attributeName as a boolean.
      参数:
      attributeName - the name of the attribute to get; never null or empty
      返回:
      the value
      抛出:
      IllegalArgumentException - if the attribute does not exist or if it is not of the expected type
    • getNumber

      public <N extends Number> N getNumber(String attributeName)
      Get the value stored under the specified attributeName as a number.
      参数:
      attributeName - the name of the attribute to get; never null or empty
      返回:
      the value
      抛出:
      IllegalArgumentException - if the attribute does not exist or if it is not of the expected type
    • getEnum

      public <E extends Enum<?>> E getEnum(String attributeName)
      Get the value stored under the specified attributeName as an enum.
      参数:
      attributeName - the name of the attribute to get; never null or empty
      返回:
      the value
      抛出:
      IllegalArgumentException - if the attribute does not exist or if it is not of the expected type
    • getClass

      public <T> Class<? extends T> getClass(String attributeName)
      Get the value stored under the specified attributeName as a class.
      参数:
      attributeName - the name of the attribute to get; never null or empty
      返回:
      the value
      抛出:
      IllegalArgumentException - if the attribute does not exist or if it is not of the expected type
    • getClassArray

      public <T> Class<T>[] getClassArray(String attributeName)
      Get the value stored under the specified attributeName as an array of classes.

      If the value stored under the specified attributeName is a class, it will be wrapped in a single-element array before returning it.

      参数:
      attributeName - the name of the attribute to get; never null or empty
      返回:
      the value
      抛出:
      IllegalArgumentException - if the attribute does not exist or if it is not of the expected type
    • getAnnotation

      public AnnotationAttributes getAnnotation(String attributeName)
      Get the AnnotationAttributes stored under the specified attributeName.

      Note: if you expect an actual annotation, invoke getAnnotation(String, Class) instead.

      参数:
      attributeName - the name of the attribute to get; never null or empty
      返回:
      the AnnotationAttributes
      抛出:
      IllegalArgumentException - if the attribute does not exist or if it is not of the expected type
    • getAnnotation

      public <A extends Annotation> A getAnnotation(String attributeName, Class<A> annotationType)
      Get the annotation of type annotationType stored under the specified attributeName.
      参数:
      attributeName - the name of the attribute to get; never null or empty
      annotationType - the expected annotation type; never null
      返回:
      the annotation
      抛出:
      IllegalArgumentException - if the attribute does not exist or if it is not of the expected type
    • getAnnotationArray

      public AnnotationAttributes[] getAnnotationArray(String attributeName)
      Get the array of AnnotationAttributes stored under the specified attributeName.

      If the value stored under the specified attributeName is an instance of AnnotationAttributes, it will be wrapped in a single-element array before returning it.

      Note: if you expect an actual array of annotations, invoke getAnnotationArray(String, Class) instead.

      参数:
      attributeName - the name of the attribute to get; never null or empty
      返回:
      the array of AnnotationAttributes
      抛出:
      IllegalArgumentException - if the attribute does not exist or if it is not of the expected type
    • getAnnotationArray

      public <A extends Annotation> A[] getAnnotationArray(String attributeName, Class<A> annotationType)
      Get the array of type annotationType stored under the specified attributeName.

      If the value stored under the specified attributeName is an Annotation, it will be wrapped in a single-element array before returning it.

      参数:
      attributeName - the name of the attribute to get; never null or empty
      annotationType - the expected annotation type; never null
      返回:
      the annotation array
      抛出:
      IllegalArgumentException - if the attribute does not exist or if it is not of the expected type
    • getRequiredAttribute

      public <T> T getRequiredAttribute(String attributeName, Class<T> expectedType)
      Get the value stored under the specified attributeName, ensuring that the value is of the expectedType.

      If the expectedType is an array and the value stored under the specified attributeName is a single element of the component type of the expected array type, the single element will be wrapped in a single-element array of the appropriate type before returning it.

      参数:
      attributeName - the name of the attribute to get; never null or empty
      expectedType - the expected type; never null
      返回:
      the value
      抛出:
      IllegalArgumentException - if the attribute does not exist or if it is not of the expected type
    • toString

      public String toString()
      覆盖:
      toString 在类中 AbstractMap<String,Object>
    • fromMap

      @Nullable public static AnnotationAttributes fromMap(@Nullable Map<String,Object> map)
      Return an AnnotationAttributes instance based on the given map.

      If the map is already an AnnotationAttributes instance, it will be cast and returned immediately without creating a new instance. Otherwise a new instance will be created by passing the supplied map to the AnnotationAttributes(Map) constructor.

      参数:
      map - original source of annotation attribute key-value pairs
    • fromMetadata

      @Nullable public static AnnotationAttributes fromMetadata(AnnotatedTypeMetadata metadata, Class<?> annotationClass)
    • fromMetadata

      @Nullable public static AnnotationAttributes fromMetadata(AnnotatedTypeMetadata metadata, String annotationClassName)