程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> JDK 5 供給的注解:Target、Inherited和Documented的差別

JDK 5 供給的注解:Target、Inherited和Documented的差別

編輯:關於JAVA

JDK 5 供給的注解:Target、Inherited和Documented的差別。本站提示廣大學習愛好者:(JDK 5 供給的注解:Target、Inherited和Documented的差別)文章只能為提供參考,不一定能成為您想要的結果。以下是JDK 5 供給的注解:Target、Inherited和Documented的差別正文


JDK 5供給的注解,除Retention之外,還有別的三個,即Target 、Inherited 和 Documented。

Target 目的即Target注解用在哪裡, 界說了注解應用的機會,即注解所實用的法式元素的品種。假如注解類型聲明中不存在 Target 元注解,則聲明的類型可以用在任一法式元素上。假如存在如許的元注解,則編譯器強迫實行指定的應用限制。

Target 界說以下:

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Target {
  ElementType[] value();
}

可以看到,Target 只要一個value屬性,類型為列舉類型ElementType。ElementType 聲明以下:

public enum ElementType {
  /** 注解可以用在類、接口(包含注解類型)或列舉聲明 */
  TYPE,
  /** 字段聲明(包含列舉常量) */
  FIELD,
  /** 辦法聲明 */
  METHOD,
  /** 參數聲明 */
  PARAMETER,
  /** 結構辦法聲明 */
  CONSTRUCTOR,
  /** 部分變量聲明 */
  LOCAL_VARIABLE,
  /** 注解類型聲明 */
  ANNOTATION_TYPE,
  /** 包聲明 */
  PACKAGE
}

Documented注解注解制造javadoc時,能否將注解信息參加文檔。假如注解在聲明時應用了@Documented,則在制造javadoc時注解信息會參加javadoc。注解聲明以下:

@Documented
@Retention(value=RUNTIME)
@Target(value=ANNOTATION_TYPE)//解釋該注解只能在聲明注解時應用,即元注解
public @interface Documented {}

Inherited 注解異樣是元注解,聲明以下:

@Documented
@Retention(value=RUNTIME)
@Target(value=ANNOTATION_TYPE)
public @interface Inherited {}

Inherited 注解注解注解能否會被子類繼續,缺省情形是不繼續的。當注解在聲明時,應用了@Inherited注解,則該注解會被應用了該注解的類的子類所繼續。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved