1 JDK1.5中內(nèi)部提供的注解
(1)@Deprecated
(2)@Override
(3)@SuppressWarnings
2 元注解
(1)@Target:用于約束注解可以應(yīng)用到哪些地方段磨。
這個(gè)注解可以接收一個(gè)ElementType類型的數(shù)組朵栖。
public enum ElementType {
/** Class, interface (including annotation type), or enum declaration */
TYPE,
/** Field declaration (includes enum constants) */
FIELD,
/** Method declaration */
METHOD,
/** Formal parameter declaration */
PARAMETER,
/** Constructor declaration */
CONSTRUCTOR,
/** Local variable declaration */
LOCAL_VARIABLE,
/** Annotation type declaration */
ANNOTATION_TYPE,
/** Package declaration */
PACKAGE,
/**
* Type parameter declaration
*
* @since 1.8
*/
TYPE_PARAMETER,
/**
* Use of a type
*
* @since 1.8
*/
TYPE_USE
}
1.PACKAGE:標(biāo)明注解可以用于包聲明衔彻;
2.CONSTRUCTOR:標(biāo)明注解可以用于構(gòu)造函數(shù)聲明劲绪;
3.PARAMETER:標(biāo)明該注解可以用于參數(shù)聲明草穆;
4.METHOD:標(biāo)明該注解可以用于方法聲明;
5.FIELD:標(biāo)明該注解可以用于字段(域)聲明官地,包括enum實(shí)例疗绣;
6.TYPE:標(biāo)明該注解可以用于類、接口(包括注解類型)或enum聲明器躏;
7.LOCAL_VARIABLE:標(biāo)明注解可以用于局部變量聲明俐载;
8.ANNOTATION_TYPE:標(biāo)明注解可以用于注解聲明(應(yīng)用于另一個(gè)注解上);
9.TYPE_PARAMETER:標(biāo)明注解可以用于類型參數(shù)聲明(1.8新加入)登失;
10.TYPE_USE:類型使用聲明(1.8新加入)遏佣;
(2)@Retention:用于控制注解的生命周期。
public enum RetentionPolicy {
// 注解會(huì)被編譯器丟棄
SOURCE,
// 注解會(huì)被編譯器記錄到class文件中揽浙,在虛擬機(jī)運(yùn)行時(shí)不會(huì)被保留
// CLASS是默認(rèn)值
CLASS,
// 注解會(huì)被編譯器記錄到class文件中状婶,在虛擬機(jī)運(yùn)行時(shí)會(huì)被保留意敛,所以可以通過反射讀取注解的信息
RUNTIME
}
(3)@Documented:將修飾的注解記錄到j(luò)avadoc中。
(4)@Inherited:使注解具有繼承性膛虫,允許子類集成父類的注解
允許子類繼承父類的注解草姻,即它所標(biāo)注的Annotation將具有繼承性,通過使用@Inherited,可以讓子類Class對(duì)象使用getAnnotations()獲取父類被@Inherited修飾的注解