国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Eclipse3.1中體驗J2SE5.0之注釋類型

2019-11-17 05:57:43
字體:
來源:轉載
供稿:網友

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開發環境中開發枚舉類型, 注釋類型和范型應用。本文將介紹注釋類型。

  注釋類型

  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、定義注釋

  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;
}
  假如定義了缺省值,在使用的時候可以不用再賦值。比如:

  清單6使用定義了缺省值的注釋

@TODO(priority="high",owner="Catherine" )
public void calculate(){
 //body omission
}
  在這個例子中,testable用缺省值true。

  和上文一樣,我們使用Eclipse 3.1作為集成的編譯運行環境。Eclipse 3.1提供了向導幫助用戶來定義注釋。 1.首先我們創建一個Plug-in 項目,com.catherine.lab.annotation.demo。在Package EXPlorer中選中包package com.catherine.lab.annotation.demo, 2.點擊New->Other->Java->Annotation,彈出了下面的對話框。4.輸入注釋的名稱,在這里例子中輸入TODO, 點擊Finish, 圖2中的注釋就生成了。

 

圖1 創建注釋向導

 

圖2 注釋向導生成的代碼

  1) 注釋的類型

  從上面的例子中,我們可以看出,按照使用者所需要傳入的參數數目, 注釋(Annotation)的類型可以分為三種。

  第一種是標記注釋類型:

  標記注釋(Marker)是最簡單的注釋, 不需要定義任何域。下面要介紹的Override和Deprecated都是標記類型的。當然,假如一個注釋類型提供了所有域的缺省值,那么這個注釋類型也可以認為是一個注釋類型。使用標記類型的語法很簡單。

  清單7 標記注釋的用法

@MarkerAnnotation
  第二種是單值注釋類型:單值注釋類型只有一個域。語法也很簡單:

  清單8 單值注釋的用法

@SingleValueAnnotation("some value")
  第三種是全值注釋類型。 全注釋類型其實并不算是一個真正的類型,只是使用注釋類型完整的語法:

  清單9 全值注釋的用法

@MultipleValueAnnotation(


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 杭锦后旗| 榆树市| 婺源县| 孟津县| 海林市| 永平县| 株洲县| 安化县| 保山市| 册亨县| 梁河县| 淳化县| 喀喇| 新沂市| 吕梁市| 德昌县| 辽宁省| 山西省| 麦盖提县| 房产| 汝州市| 宁远县| 获嘉县| 古浪县| 丹巴县| 龙门县| 兴海县| 勐海县| 西峡县| 杨浦区| 井冈山市| 库伦旗| 隆子县| 三穗县| 大港区| 肥城市| 通许县| 鞍山市| 通州区| 乡城县| 烟台市|