在寫擼代碼的時候會經常遇到很多註解,所以就簡單整理一下
JDK自帶註解
1.@Override 覆蓋父類的方法
2.@Deprecated 表示當前方法過時
3.@suppvisewarnings 忽略警告
常見的第三方註解
Spring:
Mybatis:
註解的分類
1.按照運行機制分類
源碼註解 註解只在源碼中存在,編譯成 .class 文件就不存在了
編譯時註解 註解在源碼和 .class文件中都存在
運行時註解 在運行階段還起作用,甚至會影響運行邏輯的註解
2.按照來源分
來自JDK的註解
來自第三方註解
我們自己定義的註解
3.元註解 給註解進行註解
自定義註解
使用@interface關鍵字定義註解
加粗部分爲元註解
@Target({ElementTypeMETHOD,ElementType.TYPE})
//註解的作用域
主要有 CONSTRUCTOR 構造函數 FIELD 字段聲明 LOCAL_VARIABLE 局部變量 METHOD 方法聲明 PACKAGE 包聲明 PARAMETER 參數聲明 TYPE 類接口
@Retention(@RetentionPolicy.RUNTIME)
//註解的生命週期 SOURCE 只在源碼顯示編譯時丟棄 CLASS 編譯時會記錄到class中,運行時忽略 RUNTIME 運行時存在,可以通過反射讀取
@Inherited //允許子類繼承
@Documented 生成javadoc時會包含註解
public @interface Description{
String desc(); //成員必須以無參數無異常的方式來聲明
String author();
int age() default 18; //可以用default給成員指定一個默認值
}
成員的類型是受到限制的除了正常的基本類型及String,Class,Annotation,Enumeration
* 如果註解只有一個成員,則成員必須取名爲value(),在使用時可以忽略成員名和賦值號(=)
註解類可以沒有成員,沒有成員的註解類稱爲標識註解
使用自定義註解
使用註解語法:@<註解名>(<成員名1>=<成員值1>,<成員名1>=<成員值1>,<成員名1>=<成員值1>....)
@Decription(desc="i am eyeColor", author="Mooc boy",age=18)
public String eyeColor(){
return "red"
}