注解
概念:說明程序的。給計算機看到
注釋:用文字描述程序的。給程序員看得
定義:注解(Annotation),也叫元數據。一種代碼級別的說明。它是JDK及以后版本引入的一個特性,與類、接口、枚舉是通一個層次。它可以聲明在包、類、自動、方法、局部變量、方法參數等的簽名,用來對這些元素進行說明,注釋。
描述
JDK1.5之后的新特性
說明程序的
使用注解:@注解名稱
作用分類
編寫文檔:通過代碼里的標識的注解對代碼生成文檔【生成文檔doc文檔】
代碼分析:通過代碼里的標識的注解對代碼進行分析【使用反射】
編譯檢查:通過代碼里的標識的注解讓編譯器能夠實現基本的編譯檢查【Override】
JDK中預定義的一些注解
@Override:檢查被該注解標注的方法試試是繼承自父類(接口)的
@Deprecated:該注解標記的內容,表示已過時
@SuppressWarnings:壓制警告
一般傳遞參數all,@SuppressWarnings("all")
自定義注解
格式:
元注解
public @interface 注解名稱{
屬性列表;
}
本質:注解本質上就是一個借款,該接口默認繼承Annotation接口
public interface MyAnno extends java.lang.annotation.Annotation{}
屬性:接口中的抽象方法
要求:
1.屬性的返回值類型
基本數據類型
String
枚舉
注解
以上類型的數組
2.定義了屬性,在使用時需要給屬性賦值
1.如果定義屬性是,使用defualt關鍵字給屬性默認初始化值,則使用注解時,可以不進行屬性賦值。
2.如果只有一個屬性需要賦值,并且屬性的名稱是value,則value可以省略,直接定義值即可
3.數組賦值是,值使用{}包裹。如果數組中只有一個值,則{}可以省略
元注解:用于描述注解的注解
@Target:描述注解能夠作用的位置
ElementType取值:
TYPE:用于作用于類上
METHED:可以作用于方法上
FIELD:可以作用于成員變量上
@Retention:描述注解被保留的階段
@Retention(RetentionPolicy.RUNTIME):當前被描述的注解,會保留到class字節碼文件中,并被JVM讀到
@Documented:描述注解是否被抽取到api文檔中
@Inherited:描述注解是否被子類繼承
在程序使用(解析)注解:獲取注解中定義的屬性值
1.獲取注解定義的對象(Class,Method,Field)
2.獲取指定的注解
getAnnotation(Class)
//其實就是在內存中生成了一個該注解接口的子類對象
3.調用注解中的抽象方法獲取配置的屬性值
小結:
1.以后大多數時候,我們會使用注解,而不是自定義注解
2.注解給誰用?
1.編譯器
2.給解析程序用
3.注解不是成心的一部分,可以理解為注解就是一個標簽
總結
- 上一篇: 什么是肝掌?(肝掌的治疗方法有哪些?)
- 下一篇: 校园网的路由器怎么弄如何把学校的路由器放