程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2SE >> 在Eclipse 3.1中體驗J2SE 5.0的新特性 第二部分 :注釋類型(3)

在Eclipse 3.1中體驗J2SE 5.0的新特性 第二部分 :注釋類型(3)

編輯:J2SE

第三種是全值注釋類型。全注釋類型其實並不算是一個真正的類型,只是使用注釋類 型完整的語法:
 
清單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,圖2)非常有用。熟悉設計模式的讀者們一定知道,模板方法中通常定義了抽象 類,並且這個抽象類中定義了主要的控制流。子類就是通過重寫父類中控制流中所調用的 方法來實現自己的邏輯。有的時候,父類會將這些方法定義為抽象方法,但是有的時候也 會提供缺省實現。在後者的情況下,子類可以不實現這個方法。
 
這樣就帶來一個問題,如果你希望在子類中重寫這個方法,但是無意中寫錯了方法的 名字,這個錯誤是很難被發現的。因為你希望重寫的這個方法,會被編譯器當作一個新的 方法而不是重寫父類的方法。而現在使用@Override,這個擔心就是不必要的。如果你拼 錯了你希望重寫的方法,編譯器會報錯,告訴你父類沒有相應的方法。
 
圖2 模板方法的類圖
 


清單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");
 }
 }
 
圖3 Override應用的例子
 

 

 


本文來自編程入門網:http://www.bianceng.cn/Programming/Java/201104/25424_3.htm

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