註解作爲元數據提供約束,大部分註解不會影響代碼的執行,但也有一部分註解可用於這一目的。
一、註解的作用:
1、生成文檔(@Document)
2、編譯檢查(@Override)
3、編譯時動態處理
4、運行時動態處理
二、註解的分類
1、java自帶的標準註解
2、元註解(用來修飾註解的註解)
3、自定義註解
1、元註解
jdk1.5版本內置了三種標準的註解:(1.5版本開始加入註解)
@Override,只能標註方法,表示該方法覆蓋父類中的方法
@Deprecated,被註解的內容不建議被使用
@SuppressWarnings,關閉編輯器警告信息。
Java還提供了4中註解,專門負責新註解的創建:(作用在其他註解的註解(或者說元註解))
@Target:
表示該註解可以用於什麼地方,可能的ElementType參數有:
CONSTRUCTOR:作用構造函數
FIELD:字段、枚舉常量
LOCAL_VARIABLE:作用於局部變量
METHOD:方法
PACKAGE:包
PARAMETER:方法的參數
TYPE:類、接口、枚舉、註解
ANNOTATION_TYPE:作用於註解
@Retention
表示需要在什麼級別保存該註解信息。可選的RetentionPolicy參數包括:
SOURCE:註解將被編譯器丟棄
CLASS:註解在class文件中可用,但會被VM丟棄
RUNTIME:VM將在運行期間保留註解,因此可以通過反射機制讀取註解的信息--一般會選擇這種
@Document
將註解包含在Javadoc中
@Inherited
允許子類繼承父類中的註解
java1.7後額外添加了 3 個註解::
@SafeVarargs
- Java 7 開始支持,忽略任何使用參數爲泛型變量的方法或構造函數調用產生的警告。@FunctionalInterface
- Java 8 開始支持,標識一個匿名函數或函數式接口。@Repeatable
- Java 8 開始支持,標識某註解可以在同一個聲明上使用多次。
2、自定義註解
Java中自定義註解和創建一個接口相似,自定義註解的格式是以@interface爲標誌的。
1、自定義校驗註解
https://blog.csdn.net/Y_hahaha/article/details/105975862