亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

在Eclipse 3.1體驗J2SE 5.0新特性三(圖)

2019-11-18 13:01:22
字體:
來源:轉載
供稿:網友

  2.2.1注釋的類型
  
  從上面的例子中,我們可以看出,按照使用者所需要傳入的參數數目, 注釋(Annotation)的類型可以分為三種。
  
  第一種是標記注釋類型:
  
  標記注釋(Marker)是最簡單的注釋, 不需要定義任何域。下面要介紹的Override和DePRecated都是標記類型的。當然,假如一個注釋類型提供了所有域的缺省值,那么這個注釋類型也可以認為是一個注釋類型。使用標記類型的語法很簡單。
  
  清單7 標記注釋的用法
  
  @MarkerAnnotation
  
  第二種是單值注釋類型:單值注釋類型只有一個域。語法也很簡單:
  
  清單8 單值注釋的用法
  
  @SingleValueAnnotation("some value")
  
  第三種是全值注釋類型。 全注釋類型其實并不算是一個真正的類型,只是使用注釋類型完整的語法:
  
  清單9 全值注釋的用法
  
  @MultipleValueAnnotation(
  key1=value1,
  key2=value2,
  key3=value3,
  )
  
  2.2.2 J2SE的內建注釋(build-in annotation)
  
  在程序中不僅可以使用自己定義的注釋,還可以使用J2SE5.0中內建的注釋類型。下面我們就具體來介紹J2SE5.0提供的注釋類型。J2SE 5.0中預定義了三種注釋注釋類型:
  
  Override :java.lang.Override 表示當前的方法重寫了父類的某個方法,假如父類的對應的方法并不存在,將會發生編譯錯誤。
  
  Deprecated:java.lang.Deprecated 表示 并不鼓勵使用當前的方法或者域變量。
  
  SuppressWarnings: java.lang.SuppressWarnings關閉編譯器告警,這樣,在編譯1.5之前的代碼的時候,不會出現大量不關心的無關的告警。
  
  下面舉一個使用Override的例子。Override這個注釋類型在使用模板方法(Template Method,圖3)非常有用。熟悉設計模式的讀者們一定知道,模板方法中通常定義了抽象類,并且這個抽象類中定義了主要的控制流。
  
  子類就是通過重寫父類中控制流中所調用的方法來實現自己的邏輯。有的時候,父類會將這些方法定義為抽象方法,但是有的時候也會提供缺省實現。在后者的情況下,子類可以不實現這個方法。
  
  這樣就帶來一個問題,假如你希望在子類中重寫這個方法,但是無意中寫錯了方法的名字,這個錯誤是很難被發現的。
  
  因為你希望重寫的這個方法,會被編譯器當作一個新的方法而不是重寫父類的方法。而現在使用@Override,這個擔心就是不必要的。假如你拼錯了你希望重寫的方法,編譯器會報錯,告訴你父類沒有相應的方法。
  
 在Eclipse 3.1體驗J2SE 5.0新特性三(圖)(圖一)

  
圖3 模板方法的類圖

  
  清單10給出了模板方法的一個例子。這個例子中有定義了兩個類,SubClass和BaseClass。其中SubClass繼續了BaseClass,并且希望重寫BaseClass的方法doPartII()。
  
  然而SubClass中錯誤的拼寫了這個方法的名稱。圖3顯示了SubClass中的編譯錯誤。熟悉eclipse的讀者會看到在編輯器里出現了Error Marker,說明這一行有編譯錯誤。將鼠標指向這行,顯示了錯誤信息。
  
  清單10 模板方法
  public abstract class BaseClass{ //模板方法的基類
  public void doWork(){
  doPartI(); //先調用doPartI()方法
  doPartII();//之后調用doPartII()方法
  }
  public abstract void doPartI();
  public void doPartII(){
  }
  }
  public class SubClass extend BaseClass{
  public void doPartI(){
  };
  @Override
  public void doPortII(){//拼寫錯誤,產生編譯錯誤
  System.out.println("override the method of superclass");
  }
  }
  
 在Eclipse 3.1體驗J2SE 5.0新特性三(圖)(圖二)

  
圖4 Override應用的例子

  
  2.2.3 注釋的注釋
  
  值得注重的是,J2SE5.0還提供了四種用于注釋的注釋類型。有以下的四種:
  
  1. Target:用來指定這個注釋(Annotation)是為哪種類型而定義的。比如,這個類型可能只是為method定義的。比如override,不能用@override來修飾class或者field。
  
  比如清單11中定義了一個注釋:TODO,而這個注釋定義了Target為ElementType.method。因此,TODO只能用來修飾方法,不能用來修飾類或者類變量。圖5中給出了一個非法使用TODO的例子。
  
  在MyCalculator中,定義了一個布爾型的變量 isReady,假如用TODO來修飾這個類變量的話,會出現編譯錯誤。而用TODO來修飾方法calculateRate(),則不會出現編譯錯誤。這是因為TODO的定義已經規定了,只能用來修飾方法。
  
  清單11 Target的用法
  
  @Target({ElementType.METHOD})
  public @interface TODO {
  int priority() default 0;
  }
  
在Eclipse 3.1體驗J2SE 5.0新特性三(圖)(圖三)

  
圖5 TODO注釋的非法使用

  
  2.Retention:Retention的策略可以從以下三種中選?。?br />  
  RetentionPolicy.SOURCE:編譯器編譯之后會會從class file中除去注釋(Annotation)。
  
  Retention.CLASS:注釋(Annotation)保留在class file中,但是VM不會處理。
  
  RetentionPolicy.RUNTIME,:注釋(Annotation)保留在class file,VM會進行處理。
  
  請注重,假如你希望在運行時查找到這些注釋在什么地方被用到,一定要在定義注釋的時候,選擇RetentionPolicy.RUNTIME,否則即使你用注釋修飾了類變量或者方法,在運行時也沒有辦法獲得這個信息的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕日韩专区| 国产精品三级久久久久久电影| 久久99视频免费| 国产97在线观看| 久久久久这里只有精品| 国外色69视频在线观看| 国产成人一区二区三区| 亚洲无线码在线一区观看| 亚洲精品资源在线| 欧美成人精品在线观看| 欧美成人精品在线观看| 亚洲精品乱码久久久久久按摩观| 色婷婷亚洲mv天堂mv在影片| 亚洲欧美综合v| 久久777国产线看观看精品| 国产精品免费一区豆花| 91九色国产在线| 久久手机免费视频| 亚洲无亚洲人成网站77777| 欧美国产乱视频| 91欧美精品午夜性色福利在线| 亚洲国产精品久久精品怡红院| 日韩国产中文字幕| 亚洲天堂精品在线| 久久99精品久久久久久青青91| 国语自产精品视频在免费| 91精品视频观看| 久久久成人精品视频| 好吊成人免视频| 日韩成人在线电影网| 国产精品草莓在线免费观看| 黄网站色欧美视频| 国产精品视频99| 高清视频欧美一级| 伊人亚洲福利一区二区三区| 丝袜情趣国产精品| 精品亚洲夜色av98在线观看| 欧美激情xxxx性bbbb| 亚洲男人天堂网站| 高清欧美性猛交xxxx黑人猛交| 精品国产自在精品国产浪潮| 欧美日韩精品在线视频| 美女福利视频一区| 欧美另类99xxxxx| 国产精品pans私拍| 欧美精品手机在线| 日韩日本欧美亚洲| 国语自产精品视频在免费| 亚洲2020天天堂在线观看| 韩国v欧美v日本v亚洲| 91精品在线观| 国色天香2019中文字幕在线观看| 色中色综合影院手机版在线观看| 97视频在线观看网址| 欧美一级电影久久| 欧美在线视频一区| 日韩av一区在线观看| 68精品国产免费久久久久久婷婷| 欲色天天网综合久久| 欧美激情中文网| 久久影视三级福利片| 在线观看国产精品日韩av| 欧美成人精品在线视频| 狠狠躁夜夜躁人人爽天天天天97| 在线免费观看羞羞视频一区二区| 中文字幕亚洲激情| 欧美一级bbbbb性bbbb喷潮片| 日本一区二区在线免费播放| 亚洲男人7777| 91精品国产色综合久久不卡98| 日韩精品极品视频| 国产精品日韩久久久久| 欧美国产日韩中文字幕在线| 国产成人精品在线视频| 中文国产亚洲喷潮| 国产精品一香蕉国产线看观看| 日韩专区在线播放| 日韩福利伦理影院免费| 国产精品第一视频| 美女av一区二区三区| 亚洲一区二区中文字幕| 97在线精品国自产拍中文| 亚洲国产成人爱av在线播放| 国产一区二区丝袜高跟鞋图片| 亚洲成人av资源网| 欧美精品在线看| 久久久免费电影| 午夜免费久久久久| 国产在线观看一区二区三区| 最近2019中文免费高清视频观看www99| 欧美多人爱爱视频网站| 亚洲人午夜精品| 中文字幕v亚洲ⅴv天堂| 91久久精品久久国产性色也91| 另类少妇人与禽zozz0性伦| 青草青草久热精品视频在线观看| 一区二区三区久久精品| 精品视频—区二区三区免费| 国产精品综合网站| 久久久久久一区二区三区| 97av在线播放| 懂色av中文一区二区三区天美| 欧美国产第一页| 亚洲一区中文字幕| 国产精品va在线播放| 欧美高清在线视频观看不卡| 精品国产欧美一区二区五十路| 成人淫片在线看| 亚洲成人精品av| 国产精品自产拍在线观看| 精品久久香蕉国产线看观看gif| 亚洲第一视频网| 久久天天躁夜夜躁狠狠躁2022| 欧美刺激性大交免费视频| 国产91热爆ts人妖在线| 国产xxx69麻豆国语对白| 欧美日韩亚洲国产一区| 久久精品国产久精国产思思| 国内精品久久久久久久| 国产91色在线播放| 欧美精品videossex性护士| 国产情人节一区| 俺去啦;欧美日韩| 97热在线精品视频在线观看| 国产精品网红直播| 国产成人97精品免费看片| 亚洲欧美激情另类校园| 欧美怡红院视频一区二区三区| 欧美麻豆久久久久久中文| 4444欧美成人kkkk| 青青草一区二区| 国产999精品视频| 国产亚洲视频在线观看| 亚洲欧美日韩精品久久亚洲区| 国产精品一区二区久久久| 日韩av中文字幕在线播放| 欧美伦理91i| 亚洲欧美中文日韩在线v日本| 91av在线不卡| zzijzzij亚洲日本成熟少妇| 亚洲va国产va天堂va久久| 亚洲人线精品午夜| 亚洲精品永久免费| 欧美又大又粗又长| 亚洲欧美激情另类校园| 日韩中文在线视频| 日韩美女写真福利在线观看| 久久伊人精品天天| 亚洲色图欧美制服丝袜另类第一页| 久久久精品美女| 成人黄色生活片| 欧洲成人免费视频| 日本一区二三区好的精华液| 欧美电影免费观看高清| 欧美日韩激情视频| 51视频国产精品一区二区| 一本色道久久综合狠狠躁篇怎么玩| 欧美在线视频一二三| 久久网福利资源网站| 国产精品扒开腿做爽爽爽男男| 久久夜色精品国产亚洲aⅴ| 日韩精品亚洲元码| 国产日本欧美一区| 成人午夜激情网|