Java--注解
博客說明
文章所涉及的資料來自互聯網整理和個人總結,意在于個人學習和經驗匯總,如有什么地方侵權,請聯系本人洗掉,謝謝!
說明
注解:說明程式的,給計算機看的
注釋:用文字描述程式的,給程式員看的
注解(Annotation),也叫元資料,一種代碼級別的說明,它是JDK1.5及以后版本引入的一個特性,與類、介面、列舉是在同一個層次,它可以宣告在包、類、欄位、方法、區域變數、方法引數等的前面,用來對這些元素進行說明,注釋
作用
①撰寫檔案:通過代碼里標識的注解生成檔案【生成檔案doc檔案】
②代碼分析:通過代碼里標識的注解對代碼進行分析【使用反射】
③編譯檢查:通過代碼里標識的注解讓編譯器能夠實作基本的編譯檢查【Override】
JDK中預定義的一些注解
@Override :檢測被該注解標注的方法是否是繼承自父類(介面)的
@Deprecated:該注解標注的內容,表示已過時
@SuppressWarnings:壓制警告, 一般傳遞引數all @SuppressWarnings("all")
自定義注解
格式
元注解
public @interface 注解名稱{
屬性串列;
}
本質
注解本質上就是一個介面,該介面默認繼承Annotation介面
- public interface MyAnno extends java.lang.annotation.Annotation {}
屬性
介面中的抽象方法
- 屬性的回傳值型別有下列取值
- 基本資料型別
- String
- 列舉
- 注解
-
定義了屬性,在使用時需要給屬性賦值
-
如果定義屬性時,使用default關鍵字給屬性默認初始化值,則使用注解時,可以不進行屬性的賦值,
-
如果只有一個屬性需要賦值,并且屬性的名稱是value,則value可以省略,直接定義值即可,
-
陣列賦值時,值使用{}包裹,如果陣列中只有一個值,則{}可以省略
-
元注解
用于描述注解的注解
- @Target:描述注解能夠作用的位置
- ElementType取值:
- TYPE:可以作用于類上
- METHOD:可以作用于方法上
- FIELD:可以作用于成員變數上
- ElementType取值:
- @Retention:描述注解被保留的階段
- @Retention(RetentionPolicy.RUNTIME):當前被描述的注解,會保留到class位元組碼檔案中,并被JVM讀取到
- @Documented:描述注解是否被抽取到api檔案中
- @Inherited:描述注解是否被子類繼承
決議注解
獲取注解中定義的屬性值
-
獲取注解定義的位置的物件 (Class,Method,Field)
-
獲取指定的注解
-
getAnnotation(Class)
//其實就是在記憶體中生成了一個該注解介面的子類實作物件public class ProImpl implements Pro{ public String className(){ return "cn.itcast.annotation.Demo1"; } public String methodName(){ return "show"; } }
-
-
呼叫注解中的抽象方法獲取配置的屬性值
感謝
黑馬程式員
以及勤勞的自己
關注公眾號: 歸子莫,獲取更多的資料,還有更長的學習計劃
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/165057.html
標籤:Java
