風人園

          弱水三千,只取一瓢,便能解渴;佛法無邊,奉行一法,便能得益。
          隨筆 - 99, 文章 - 181, 評論 - 56, 引用 - 0
          數據加載中……

          J2SE 5.0的三種內置注釋類型

          J2SE 5.0的三種內置注釋類型

          注解(annotation)是J2SE 5.0的新內容,它給我們提供了很好的編程支持,下面介紹一下其內置的三種注解類型:

          1. @Override

          @Override用在多態情況下,比如:

          public abstract class Animal{
             public void say(){
                System.out.println("annimal is saying");
             }
          }
          
          public class Cat extends Animal{
              @Override
              public void say(){
                  System.out.println("miao, miao");
              }
          }
          

          通過@Override來告訴java編譯器,say方法是重載的父類的方法,這樣,當父類的say方法簽名改名的話,比如增加了一些參數,那么子類的Cat中的say方法編譯時就會報錯,說沒有正確的重載父類方法,所以,@Override可以幫我們驗證程序的正確性,這一點,很有用。

          2. @Deprecated

          @Deprecated的意思和JavaDoc中的@deprecated注釋在本質上是一樣的,使用如下:

          public class DeprecatedExample {?
          ???@Deprecated?
          ???public static void badMethod() { }
          }

          public class DeprecatedUser {?
          ???public static void main(String[] args){
          ??????DeprecatedExample.badMethod();?
          ???}
          }


          上面的代碼如果用javac進行編譯的話,會打印出如下信息:
          Note: DeprecatedUser.java uses or overrides a deprecated API.
          Note: Recompile with -Xlint:deprecation for details.
          1 error
          如果你按提示重新加-Xlint進行編譯,你就可以得到錯誤的詳細信息:
          % javac -Xlint:deprecation
          DeprecatedUser.java:3: warning: [deprecation] badMethod() in DeprecatedExample
          has been deprecated
          DeprecatedExample.badMethod();

          需要注意的是:和javadoc中的@deprecated相比,@Deprecated并沒有強大多少,因為它不支持參數,而@deprecated后面還可以跟字符串來給一些相關的信息,但@Deprecated做不到,但它提供了運行時自省的功能,來提示錯誤,所以建議@Deprecated和@deprecated同時使用。


          ?3. @SuppressWarnings

          顧名思義,就是抑制警告信息的出現,使用如下:
          public class DeprecatedExample2{?
          ???@Deprecated?
          ???public static void foo() { }
          }

          public class DeprecatedUser2 {?
          ???@SuppressWarnings(value={"deprecation"})?
          ???public static void main(String[] args) {?
          ??????DeprecatedExample2.foo();?
          ???}
          }

          上述@SuppressWarnings(value={"deprecation"})的作用就是抑制編譯器報deprecation的錯。
          @SuppressWarnings(value={"deprecation"})只支持一個參數,是數組類型,所以你可以不用加value, 寫成:@SuppressWarnings({"deprecation"});當想抑制多個類型的警告信息時,可寫:@SuppressWarnings({"unchecked","fallthrough",deprecation"}).

          注意:在JDK1.5.0 release中,@SuppressWarnings還沒有得到完全支持,會在以后支持,但Sun并沒有給出具體的時間。

          posted on 2006-12-16 15:33 風人園 閱讀(323) 評論(0)  編輯  收藏 所屬分類: Java

          主站蜘蛛池模板: 化隆| 托克逊县| 昌都县| 古浪县| 正阳县| 莱州市| 陵水| 类乌齐县| 吴旗县| 夏河县| 东乡县| 兴宁市| 巴中市| 广水市| 新邵县| 绵阳市| 修文县| 文昌市| 新津县| 怀远县| 塔城市| 定结县| 庐江县| 和林格尔县| 科尔| 宜宾县| 巨鹿县| 商丘市| 吉木萨尔县| 蕉岭县| 治多县| 合川市| 天镇县| 沅江市| 察雅县| 岳普湖县| 杭锦后旗| 万源市| 海南省| 和平区| 西青区|