從JDK5開始,Java增加對元資料的支持,也就是註解,註解與註解是有一定區別的,可以把註解理解為程式碼裡的特殊標記,這些標記可以在編譯,類別加載,運行時被讀取,並執行相應的處理。透過註解開發人員可以在不改變原有程式碼和邏輯的情況下在原始程式碼中嵌入補充資訊。
什麼是註解
註解,可以看作是對一個類別/方法的一個擴展的模版,每個類/方法依照註解類別中的規則,來為類別/方法註解不同的參數,在用到的地方可以得到不同的類別/方法中註解的各種參數與值
註解也就是Annotation,相信不少人也跟我之前一樣以為和註釋和doc一樣,是一段輔助性的文字,其實註解不是這樣的。
從JDK5開始,java增加了對元資料(描述資料屬性的資訊)的支援。其實說白就是程式碼裡的特殊標誌,這些標誌可以在編譯,類別加載,運行時被讀取,並執行相應的處理,以便於其他工具補充資訊或部署。
Annotation(註解)它可以用於建立文檔,追蹤程式碼中的依賴性,甚至執行基本編譯時檢查。從某些方面來看,annotation就像修飾符一樣被使用,並應用於套件、類別 類型、建構方法、方法、成員變數、參數、本地變數的宣告。這些資訊被儲存在Annotation的「name=value」結構對中。
Annotation的成員在Annotation類型中以無參數的方法的形式宣告。其方法名和回傳值定義了該成員的名字和類型。
在此有一個特定的預設語法:
允許宣告任何Annotation成員的預設值:一個Annotation可以將name=value對作為沒有定義預設值的Annotation成員的值,當然也可以使用name=value對來覆寫其它成員預設值。這一點有些近似類別的繼承特性,父類別的建構子可以作為子類別的預設建構函數,但是也可以被子類別覆蓋。
Annotation能被用來為某個程式元素(類別、方法、成員變數等)關聯任何的資訊。
要注意的是,這裡存在著一個基本的規則:
Annotation不能影響程式碼的執行,無論增加、刪除Annotation,程式碼都一致的執行。
另外,儘管一些annotation透過java的反射api方法在運行時被訪問,而java語言解釋器在工作時忽略了這些annotation。正是由於java虛擬機器忽略了Annotation,導致了annotation類型在程式碼中是「不起作用」的;
只有透過某種配對的工具才會對annotation類型中的資訊進行存取和處理。
註解的意義
為編譯器提供輔助資訊— Annotations可以為編譯器提供而外在訊息,以便於偵測錯誤,抑制警告等.
編譯原始碼時進行而外操作— 軟體工具可以透過處理Annotation資訊來產生原程式碼,xml檔等等.
執行階段處理— 有一些annotation甚至可以在程式執行時被偵測,使用.
總之,註解是一種元數據,起到了」描述,配置「的作用。
以上是java類中為什麼有註解的詳細內容。更多資訊請關注PHP中文網其他相關文章!