java.lang.annotation

接口
异常
错误
注释
所有已知实现类:
BindingType, ConstructorProperties, Deprecated, DescriptorKey, Documented, Generated, HandlerChain, Inherited, InitParam, MXBean, Oneway, Override, PostConstruct, PreDestroy, RequestWrapper, Resource, Resources, ResponseWrapper, Retention, ServiceMode, SOAPBinding, SOAPMessageHandler, SOAPMessageHandlers, SupportedAnnotationTypes, SupportedOptions, SupportedSourceVersion, SuppressWarnings, Target, WebEndpoint, WebFault, WebMethod, WebParam, WebResult, WebService, WebServiceClient, WebServiceProvider, WebServiceRef, WebServiceRefs, XmlAccessorOrder, XmlAccessorType, XmlAnyAttribute, XmlAnyElement, XmlAttachmentRef, XmlAttribute, XmlElement, XmlElementDecl, XmlElementRef, XmlElementRefs, XmlElements, XmlElementWrapper, XmlEnum, XmlEnumValue, XmlID, XmlIDREF, XmlInlineBinaryData, XmlJavaTypeAdapter, XmlJavaTypeAdapters, XmlList, XmlMimeType, XmlMixed, XmlNs, XmlRegistry, XmlRootElement, XmlSchema, XmlSchemaType, XmlSchemaTypes, XmlTransient, XmlType, XmlValue

public interface Annotation

所有 annotation 类型都要扩展的公共接口。注意,手动扩展该公共接口的接口 定义 annotation 类型。还要注意此接口本身不定义 annotation 类型。

从以下版本开始:
1.5

方法摘要
 Class<? extends Annotation> annotationType()
          返回此 annotation 的注释类型。
 boolean equals(Object obj)
          如果指定的对象表示在逻辑上等效于此接口的注释,则返回 true。
 int hashCode()
          返回此 annotation 的哈希码,具体说明如下: 一个 annotation 的哈希码是其成员(包括那些带有默认值的成员)的哈希码的和,具体说明如下: annotation 成员的哈希码是成员值哈希码的 XOR(它是 String.hashCode() 计算得到的成员名哈希码的 127 倍),具体说明如下: 成员值的哈希码取决于其类型: 基值 v 的哈希码等于 WrapperType.valueOf(v).hashCode(),其中 WrapperType 是对应 v 的基本类型的包装器类型(ByteCharacterDoubleFloatIntegerLongShortBoolean)。
 String toString()
          返回此 annotation 的字符串表示形式。
 

方法详细信息

equals

boolean equals(Object obj)
如果指定的对象表示在逻辑上等效于此接口的注释,则返回 true。换句话说,如果指定对象是一个与此实例相同的 annotation 类型的实例,即其所有成员都与此实例中所对应的成员相等,则返回 true,具体说明如下:
  • 如果 x == y,则认为值分别为 xy 的两个对应的基本类型成员相等,除非它们的类型是 floatdouble
  • 如果 Float.valueOf(x).equals(Float.valueOf(y)) 为真,则认为值分别为 xy 的两个对应的 float 成员相等。(与 == 运算符不同,NaN 被认为等于其自身,并且 0.0f 不等于 -0.0f。)
  • 如果 Double.valueOf(x).equals(Double.valueOf(y)) 为真,则认为值分别为 xy 的两个对应的 double 成员相等。(与 == 运算符不同,NaN 被认为等于其自身,并且 0.0 不等于 -0.0。)
  • 如果 x.equals(y) 为真,则认为值分别为 xy 的两个对应的 StringClass、enum 或 annotation 类型的成员相等。(注意,此定义对于 annotation 类型的成员是递归的。)
  • 对于适当重载的 Arrays.equals(long[], long[]),如果 Arrays.equals(x, y) 为真, 则认为两个对应的数组类型的成员 xy 相等。

覆盖:
Object 中的 equals
参数:
obj - 要与之比较的引用对象。
返回:
如果指定的对象表示在逻辑上等效于该接口的 annotation,则返回 true,否则返回 false
另请参见:
Object.hashCode(), Hashtable

hashCode

int hashCode()
返回此 annotation 的哈希码,具体说明如下:

一个 annotation 的哈希码是其成员(包括那些带有默认值的成员)的哈希码的和,具体说明如下: annotation 成员的哈希码是成员值哈希码的 XOR(它是 String.hashCode() 计算得到的成员名哈希码的 127 倍),具体说明如下:

成员值的哈希码取决于其类型:

  • 基值 v 的哈希码等于 WrapperType.valueOf(v).hashCode(),其中 WrapperType 是对应 v 的基本类型的包装器类型(ByteCharacterDoubleFloatIntegerLongShortBoolean)。
  • string、enum、class 或 annotation 的成员值 I 的哈希码 v 是通过调用 v.hashCode() 来计算的。(对于 annotation 成员值,这是一种递归定义。)
  • 数组成员值的哈希码是通过基于该值调用 Arrays.hashCode 的适当重载来计算的。(各种基本类型和对象引用类型分别对应一个重载。)

覆盖:
Object 中的 hashCode
返回:
此 annotation 的哈希码。
另请参见:
Object.equals(java.lang.Object), Hashtable

toString

String toString()
返回此 annotation 的字符串表示形式。表示形式的细节取决于实现,但下面的情况是最常见的:
   @com.acme.util.Name(first=Alfred, middle=E., last=Neuman)
 

覆盖:
Object 中的 toString
返回:
此 annotation 的字符串表示形式

annotationType

Class<? extends Annotation> annotationType()
返回此 annotation 的注释类型。