好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁(yè) > 知識(shí)庫(kù) > J2SE1.5 注釋語(yǔ)法

J2SE1.5 注釋語(yǔ)法

熱門(mén)標(biāo)簽:漯河辦理400電話(huà) 怎樣把地圖標(biāo)注出來(lái) 地圖標(biāo)注人員兼職 電話(huà)機(jī)器人的特色和創(chuàng)新 淮南騰訊地圖標(biāo)注 商丘百應(yīng)電話(huà)機(jī)器人有沒(méi)有效果 騰訊地圖標(biāo)注商戶(hù)改名注冊(cè)入駐 開(kāi)封便宜外呼系統(tǒng)報(bào)價(jià) 黃石智能營(yíng)銷(xiāo)電銷(xiāo)機(jī)器人效果
說(shuō)起注解語(yǔ)法,對(duì)于任何一個(gè)Java開(kāi)發(fā)人員來(lái)說(shuō)都已經(jīng)耳熟能詳了,我們每天都在使用著 @author, @param,等等編寫(xiě)注釋?zhuān)缓笥胘avadoc生成文檔。Java的這種方便的文檔生成方法受到了開(kāi)發(fā)者的普遍贊譽(yù)。而從JDK1.5開(kāi)始,注釋語(yǔ)法提供了更為強(qiáng)大的功能。

  我們先談?wù)勛⑨屨Z(yǔ)法本身,它有時(shí)候也稱(chēng)為meta-data :“描述數(shù)據(jù)的數(shù)據(jù)” 。一般來(lái)說(shuō)它們可以被用來(lái)生成文檔,檢查代碼間依賴(lài)關(guān)系,幫助編譯器作語(yǔ)法檢查。時(shí)下比較流行的工具有Xdoclet等。對(duì)于文檔生成早已經(jīng)有了javadoc工具的完美表現(xiàn),而對(duì)于代碼檢查,如今java也提供了語(yǔ)言級(jí)的支持。

  我們知道,javadoc是通過(guò)提取java源文件中的標(biāo)簽信息來(lái)生成文檔。所以要學(xué)習(xí)新的注釋語(yǔ)法,們首先要熟悉的就是新增的標(biāo)簽。新的注釋語(yǔ)法支持兩種標(biāo)簽,系統(tǒng)標(biāo)準(zhǔn)標(biāo)簽和用戶(hù)自定義標(biāo)簽。標(biāo)簽的符號(hào)也原先一樣,@符號(hào)加上標(biāo)簽名字。我們先從JDK1.5自帶的標(biāo)準(zhǔn)標(biāo)簽說(shuō)起。

  首先介紹@override , 也不用多羅嗦,顧名思義了,就是用來(lái)說(shuō)明方法覆載的。我們假設(shè)有一個(gè)子類(lèi)必須要覆載父類(lèi)的方法.

  ================================================================================
  public class Parent{

  public void foo(){
  System.out.println("Original Implementation of foo");
  }

  }

  public class Child extends Parent{

  @Override
  public void foo(){
  System.out.println("Overide Implementation of foo");
  }

  }
  ================================================================================

  目前為止我們看不出來(lái)這個(gè)@Override給我們帶來(lái)了任何好處,所以我們先說(shuō)說(shuō)加個(gè)這個(gè)標(biāo)簽后,我們用javac編譯的時(shí)候編譯器執(zhí)行了些什么呢?編譯器會(huì)檢查這個(gè)方法,然后從父類(lèi)查找是否有這個(gè)方法,否則就編譯出錯(cuò)。這個(gè)特性可以幫助我們避免一些低級(jí)錯(cuò)誤。上面這個(gè)例子,子類(lèi)想覆載foo()方法,不過(guò)你可能一時(shí)疏忽把它寫(xiě)成了fob(), 對(duì)于這樣的”低級(jí)錯(cuò)誤”,如果你沒(méi)有在前期就發(fā)現(xiàn)的話(huà),到系統(tǒng)集成測(cè)試的時(shí)候,可能會(huì)化上你幾個(gè)小時(shí)甚至一兩天去找出這樣的bug。現(xiàn)在好了,編譯器在編譯的時(shí)候就會(huì)給出錯(cuò)誤,

  Child.java:3: method does not override a method from its superclass
  @Override
  ^
  1 error


  怎么樣,這個(gè)功能還不錯(cuò)吧。
   看過(guò)了標(biāo)準(zhǔn)標(biāo)簽的使用方法,我們來(lái)看看用戶(hù)自定義標(biāo)簽。首先介紹@interface, 它用于定義新的注釋類(lèi)型(annotation type)。新建一個(gè)注釋類(lèi)型看起來(lái)和定義一Interface 沒(méi)有什么兩樣,MyTag.java用于新建一個(gè)用戶(hù)自定義標(biāo)簽,代碼如下,

  ===============================================================================
  package tiger.annotation;
  /**
  * 用戶(hù)自定義標(biāo)簽??MyTag
  */
  public @interface MyTag { }

  定義了一個(gè)tag之后,我們就可以在任何java文件中使用這個(gè)tag了,
  import tiger.annotation.MyTag;
  public class TagTest{

  @MyTag
  public void testTag(){
  }
  }
  ===============================================================================

  注釋類(lèi)型還可以有成員變量,

  ==============================================================================
  package tiger.annotation;
  /**
  * 用戶(hù)自定義標(biāo)簽??帶有成員變量的MyTag
  */
  public @interface MyTag {

  String name();

  int age();
  }
  =============================================================================

  然后我們可以這么使用這個(gè)標(biāo)簽,

  @MyTag(name="MyTag",age=1)
  public void testTag(){
  }

  使用標(biāo)簽最終是為了幫助開(kāi)發(fā)人員提取注釋信息,然后根據(jù)不同需求做進(jìn)一步處理,下面我們來(lái)看看如何獲取注釋信息。

  =============================================================================
  import java.lang.annotation.Annotation;
  import tiger.annotation.MyTag;
  public class TagTest{

  @MyTag(name="MyTag",age=1)
  public void test(){
  }

  public static void main(String[] args){
  TagTest tt = new TagTest();
  try {
  Annotation[] annotation =tt.getClass().getMethod("test").getAnnotations();
  for (Annotation tag :annotation) {
  System.out.println("Tag is:" + tag);
  System.out.println("tag.name()" + ((MyTag)tag).name());
  System.out.println("tag.age()" + ((MyTag)(tag)).age());
  }
  } catch(NoSuchMethodException e) {
  e.printStackTrace();
  }
  }
  }
  ===============================================================================

  需要注意的一點(diǎn)是,在執(zhí)行這段代碼之前我們還有一點(diǎn)小工作要做,還需要給我們的自定義標(biāo)簽MyTag加上一個(gè)說(shuō)明標(biāo)簽,@ Retention, 表明注釋信息將可以在運(yùn)行時(shí)刻通過(guò)反射機(jī)制得到。如果不加入這個(gè)標(biāo)簽,上面的代碼將沒(méi)有任何輸出。修改以后的MyTag如下:

  ================================================================================
  /**
  * 用戶(hù)自定義標(biāo)簽??帶有成員變量的MyTag
  */
  @Retention(RetentionPolicy.RUNTIME)
  public @interface MyTag {

  String name();

  int age();
  }
  ================================================================================

  然后我們執(zhí)行TagTest可以得到輸出如下,

  Tag is:@tiger.annotation.MyTag(name=MyTag, age=1)
  tag.name()MyTag
  tag.age()1

  好了,Tiger新的注釋語(yǔ)法基本用法就這么簡(jiǎn)單,基本用法雖然簡(jiǎn)單,但是獲取注釋信息之后如何處理確很值得推敲,我們可以用他們來(lái)做一些語(yǔ)法檢查,文件相關(guān)性檢查,進(jìn)行各種統(tǒng)計(jì)等等。關(guān)于更多的Tiger新注釋語(yǔ)法的信息,可以訪(fǎng)問(wèn)[link=http://java.sun.com/j2se/1.5.0/docs/guide/language/annotations.html]。

  以上代碼在win2k + j2se5 GA下通過(guò)。

標(biāo)簽:大興安嶺 亳州 鄭州 拉薩 岳陽(yáng) 武威 紅河 馬鞍山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《J2SE1.5 注釋語(yǔ)法》,本文關(guān)鍵詞  J2SE1.5,注釋,語(yǔ)法,J2SE1.5,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《J2SE1.5 注釋語(yǔ)法》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于J2SE1.5 注釋語(yǔ)法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 她也啪她在色tayese短视频| 短篇强公交车500篇小说| 女同性互添互自慰专区| 美女视频一区二区三区| 4388全国最大成网站在线| 老师嗯啊好深再用力一点| free性中国丰满护士| 男女秘?无遮挡視頻视频在线| 一本色道久久综合狠狠躁| japanesehdxxxx国产| 99re在线这里只有精品免费| 秘?动漫免费网站无码| 欧美黑人猛烈ⅩXXX狂暴| 国产成人18黄网站免费网站| 国产精品久久久久久久久A片| 老怡红院怡红院免费看| jlzzjlzz全部女高潮视频| 久久精品国产清白在天天线| 免费毛片在线视频| 貂蝉被?到深处喷水的| 三浦恵理子无码OKSN249| 肉到痉挛中出痴汉在线播放| 天天干狠狠| 武则天被下药揉到高潮| 欧美video粗暴videos恐怖| 嬌喘女神系列大戰的观看次数和点赞次数 | 翁熄系列周梦莹怀孕| 中文国产成人精品久久水| 男人边吃奶边弄进去视频| 日韩 无码毛片一区二区| 被强h| 轻点啊啊啊| 97超碰国产亚洲精品理论电影| 飘花伊人827连裤袜| 一边摸下一边?受不了了电影 | 潘金莲一级淫片aaaa| 午夜影院在线免费| 欧美1| 成人国产AV精品久久电影| 精品久久一区二区三区| gogo大尺度|