注解的作用:
1.生成文檔
2.跟蹤代碼依賴性
3.編譯時進行格式檢查
-------------------------------------------------------------------------------------------------
Java的5個內置注解(基本注解):
@Deprecated 過時
用於過時的類、方法、成員變量等
@Override
覆蓋父類方法
@SuppressWarning
阻止警告
@FunctionaInterface
指定接口必須為函數式接口
@SafeVarargs
一直"堆污染警告"
-------------------------------------------------------------------------------------------------
4種元注解: 能注解到注解上的注解,能用在其他注解上的注解。
@Retention 保留期,能設定注解的存活時間
RententionPolicy:SOURCE 源代碼階段
RententionPolicy:CLASS 到編譯階段
RententionPolicy:RUNTIME 到運行階段
eg:
@Rentention(RententionPolicy:RUNTIME) public @interface Xxx{}
@Documented
將注解中的元素包含到Javadoc中
@Target
限定注解能運用的地方
ElementType.ANNOTATION_TYPE 注解
ElementType.COUNSTRUCTOR 構造方法
ElementType.FIELD 屬性
。。
@Inherited
標明注解是能被繼承的,例如B繼承了A,A添加了注解,那么B也會繼承同樣的注解
-------------------------------------------------------------------------------------------------
自定義注解
語法: public @interface xxx{}
使用:@xxx
注解只有成員變量,沒有方法
eg:
public @interface Xxx{
int a(); char b(); }
//使用
@Xxx(a=1,b="b")
可有默認值,eg: public int a() default 2;
若屬性只有value,使用時可采用簡寫:
public @interface Xxx{
String value();
}
@Xxx("11")