注釋類型 注釋類型簡介
J
SE
提供了很多新的特性
其中的一個很重要的特性
就是對元數據(Metadata)的支持
在J
SE
中
這種元數據叫作注釋(Annotation)
通過使用注釋
程序開發人員可以在不改變原有邏輯的情況下
在源文件嵌入一些補充的信息
代碼分析工具
開發工具和部署工具可以通過這些補充信息進行驗證或者進行部署
舉個例子
比如說你希望某個方法的參數或者返回值不為空
雖然我們可以在Java doc中說明
但是表達同樣意思的說法有很多
比如
The return value should not be null
或者
null is not allowed here
測試工具很難根據這些語言來分析出程序員所期望的前提條件(Pre
condition)和執行後的條件(Post
condition)
而使用注釋(Annotation)
這個問題就可以輕而易舉的解決了
定義注釋
J
SE
支持用戶自己定義注釋
定義注釋很簡單
注釋是由@Interface關鍵字來聲明的
比如下面是一個最簡單的注釋(Annotation)
清單
一個最簡單的注釋
public @interface TODO{}
除了定義清單
中的注釋以外
我們還可以在注釋(Annotation)中加入域定義
方法很簡單
不需定義Getter和Setter方法
而只需一個簡單的方法
比如
清單
為注釋加入域>
public @interface TODO{
String priority();
}
定義了這個注釋之後
我們在程序中引用就可以使用這個注釋了
清單
使用自定義的注釋
@TODO(
priority=
high
)
public void calculate(){
//body omission
}
由於TODO中只定義了一個域
使用TODO的時候
可以簡寫為
清單
單域注釋的簡寫
@TODO(
high
)
類似的
你可以在你的注釋(Annotation)類型中定義多個域
也可以為每個域定義缺省值
比如
清單
定義缺省值
public @interface TODO{
String priority();
String owner();
boolean testable() default true;
}
如果定義了缺省值
在使用的時候可以不用再賦值
比如
清單
使用定義了缺省值的注釋
@TODO(
priority=
high
owner=
Catherine
)
public void calculate(){
//body omission
}
在這個例子中
testable用缺省值true
和上文一樣
我們使用Eclipse
作為集成的編譯運行環境
Eclipse
提供了向導幫助用戶來定義注釋
.首先我們創建一個Plug
in 項目
com
catherine
lab
annotation
demo
在Package Explorer中選中包package com
catherine
lab
annotation
demo
點擊New
>Other
>Java
>Annotation
彈出了下面的對話框
輸入注釋的名稱
在這裡例子中輸入TODO
點擊Finish
圖
中的注釋就生成了
educitycn/img_///jpg > 圖 創建注釋向導 educitycn/img_///jpg> 圖 注釋向導生成的代碼
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28475.html