程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> Eclipse3.1中體驗J2SE5.0之注釋類型

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

編輯:JAVA編程入門知識

  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(
  
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved