自定義註解常用筆記@Target,@Retention,@Document,@Inherited

自定義註解常用筆記@Target,@Retention,@Document,@Inherited

圖例:

在這裏插入圖片描述

crtl進入該註解

在這裏插入圖片描述

@Target

@Target :(自定義)註解的作用目標

  • @Target(ElementType.TYPE)——接口、類、枚舉、註解
  • @Target(ElementType.FIELD)——字段、枚舉的常量
  • @Target(ElementType.METHOD)——方法
  • @Target(ElementType.PARAMETER)——方法參數
  • @Target(ElementType.CONSTRUCTOR) ——構造函數
  • @Target(ElementType.LOCAL_VARIABLE)——局部變量
  • @Target(ElementType.ANNOTATION_TYPE)——註解
  • @Target(ElementType.PACKAGE)——包

@Retention

@Retention :(自定義)註解的保留位置

  • RetentionPolicy.SOURCE:(默認)這種類型的Annotations只在源代碼級別保留,編譯時就會被忽略,在class字節碼文件中不包含
  • RetentionPolicy.CLASS:這種類型的Annotations編譯時被保留,默認的保留策略,在class文件中存在,但JVM將會忽略,運行時無法獲得
  • RetentionPolicy.RUNTIME:這種類型的Annotations將被JVM保留,所以他們能在運行時被JVM或其他使用反射機制的代碼所讀取和使用

@Document

@Document:說明該註解將被包含在javadoc中,默認情況下,javadoc是不包括註解的,但如果聲明註解時指定了 @Documented,則它會被 javadoc 之類的工具處理, 則它的註釋成爲公共API的一部分

@Inherited

@Inherited:說明子類可以繼承父類中的該註解(大概作用)

有時間再看源碼分析

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章