J2SE 5.0 (Tiger)的發布是Java語言發展史上的一個重要的裡程碑, 是迄今為止在 Java 編程方面所取得的最大進步。
J2SE 5.0提供了很多令人激動的特性。這些特性包括范型(generics)的支持, 枚舉類 型(enumeration)的支持, 元數據(metadata)的支持, 自動拆箱(unboxing)/裝箱 (autoboxing), 可變個數參數(varargs), 靜態導入(static imports), 以及新的線程架 構(Thread framework)。
隨著J2SE 5.0的推出, 越來越多的集成開發環境(IDE)支持J2SE 5.0的開發。著名的開 源Java IDE Eclipse從3.1M4開始支持J2SE 5.0的開發, 目前最新的版本是3.1RC4。
本系列將介紹J2SE 5.0中三個比較重要的特性: 枚舉類型, 注釋類型, 范型, 並在此 基礎上介紹在如何在Eclipse 3.1開發環境中開發枚舉類型, 注釋類型和范型應用。本文 將介紹注釋類型。
2. 注釋類型
2.1注釋類型簡介
J2SE 5.0提供了很多新的特性。其中的一個很重要的特性,就是對元數據(Metadata) 的支持。在J2SE5.0中,這種元數據叫作注釋(Annotation)。通過使用注釋, 程序開發人 員可以在不改變原有邏輯的情況下,在源文件嵌入一些補充的信息。代碼分析工具,開發 工具和部署工具可以通過這些補充信息進行驗證或者進行部署。舉個例子,比如說你希望 某個方法的參數或者返回值不為空,雖然我們可以在Java doc中說明,但是表達同樣意思 的說法有很多,比如"The return value should not be null"或者"null is not allowed here"。測試工具很難根據這些語言來分析出程序員所期望的前提條件(Pre- condition)和執行後的條件(Post-condition)。而使用注釋(Annotation),這個問題就可 以輕而易舉的解決了。
2.2定義注釋
J2SE5.0支持用戶自己定義注釋。定義注釋很簡單,注釋是由@Interface關鍵字來聲明 的。比如下面是一個最簡單的注釋(Annotation)。
清單1一個最簡單的注釋
public @interface TODO{}
除了定義清單1中的注釋以外,我們還可以在注釋(Annotation)中加入域定義。方法 很簡單,不需定義Getter和Setter方法,而只需一個簡單的方法,比如:
清單2 為注釋加入域
public @interface TODO{
String priority();
}
定義了這個注釋之後,我們在程序中引用就可以使用這個注釋了。
清單3 使用自定義的注釋
@TODO(
priority="high"
)
public void calculate(){
//body omission
}
由於TODO中只定義了一個域,使用TODO的時候,可以簡寫為
清單4 單域注釋的簡寫
@TODO("high")
類似的,你可以在你的注釋(Annotation)類型中定義多個域,也可以為每個域定義 缺省值。比如:
清單5定義缺省值
public @interface TODO{
String priority();
String owner();
boolean testable() default true;
}
本文來自編程入門網:http://www.bianceng.cn/Programming/Java/201104/25424.htm