Class AnnotationUtils
Helper methods for working with Annotation
instances.
This class contains various utility methods that make working with annotations simpler.
Annotation
instances are always proxy objects; unfortunately
dynamic proxies cannot be depended upon to know how to implement certain
methods in the same manner as would be done by "natural" Annotation
s.
The methods presented in this class can be used to avoid that possibility. It
is of course also possible for dynamic proxies to actually delegate their
e.g. Annotation.equals(Object)
/Annotation.hashCode()
/
Annotation.toString()
implementations to AnnotationUtils
.
#ThreadSafe#
- Since:
- 3.0
-
Constructor Summary
ConstructorDescriptionAnnotationUtils
instances should NOT be constructed in standard programming. -
Method Summary
Modifier and TypeMethodDescriptionstatic boolean
equals
(Annotation a1, Annotation a2) Checks if two annotations are equal using the criteria for equality presented in theAnnotation.equals(Object)
API docs.static int
Generate a hash code for the given annotation using the algorithm presented in theAnnotation.hashCode()
API docs.static boolean
isValidAnnotationMemberType
(Class<?> type) Checks if the specified type is permitted as an annotation member.static String
Generate a string representation of an Annotation, as suggested byAnnotation.toString()
.
-
Constructor Details
-
AnnotationUtils
public AnnotationUtils()AnnotationUtils
instances should NOT be constructed in standard programming. Instead, the class should be used statically.This constructor is public to permit tools that require a JavaBean instance to operate.
-
-
Method Details
-
equals
Checks if two annotations are equal using the criteria for equality presented in the
Annotation.equals(Object)
API docs.- Parameters:
a1
- the first Annotation to compare,null
returnsfalse
unless both arenull
a2
- the second Annotation to compare,null
returnsfalse
unless both arenull
- Returns:
true
if the two annotations areequal
or bothnull
-
hashCode
Generate a hash code for the given annotation using the algorithm presented in the
Annotation.hashCode()
API docs.- Parameters:
a
- the Annotation for a hash code calculation is desired, notnull
- Returns:
- the calculated hash code
- Throws:
RuntimeException
- if anException
is encountered during annotation member accessIllegalStateException
- if an annotation method invocation returnsnull
-
toString
Generate a string representation of an Annotation, as suggested by
Annotation.toString()
.- Parameters:
a
- the annotation of which a string representation is desired- Returns:
- the standard string representation of an annotation, not
null
-
isValidAnnotationMemberType
Checks if the specified type is permitted as an annotation member.
The Java language specification only permits certain types to be used in annotations. These include
String
,Class
, primitive types,Annotation
,Enum
, and single-dimensional arrays of these types.- Parameters:
type
- the type to check,null
- Returns:
true
if the type is a valid type to use in an annotation
-