<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    2010年8月2日

    Java注解使用的幾個小技巧:

      最近經常用到注解,總結了幾個注解使用的小技巧,現整理如下:

     一、使用默認的注解參數:

    使用default關鍵字可以指定注解的默認參數:

    import java.lang.annotation.ElementType;

    import java.lang.annotation.Retention;

    import java.lang.annotation.RetentionPolicy;

    import java.lang.annotation.Target;

    @Target(ElementType.METHOD)

    @Retention(RetentionPolicy.RUNTIME)

    public @interface SQL {

    String sql() default "";

    }

    如果我們在使用注解@SQL的時候沒有顯式的去指定sql參數,那么就默認采取default關鍵字所指定的值

    二、用value指定默認值

    我們經常看到很多注解是這種形式,例如:@SQL("select email from user")

    這個注解里面的參數為什么沒有帶名稱呢?其實它的注解是這樣定義的:

    import java.lang.annotation.ElementType;

    import java.lang.annotation.Retention;

    import java.lang.annotation.RetentionPolicy;

    import java.lang.annotation.Target;

    @Target(ElementType.METHOD)

    @Retention(RetentionPolicy.RUNTIME)

    public @interface SQL {

    String value() default "";

    }

    三、在注解中使用數組參數

    如果你用過Struts2的注解來配置Action,那么你會看到如下形式的注解:

    @Results({   

           @Result(name="success",value=xxx

    .jsp",type=org.apache.struts2.dispatcher.ServletRedirectResult.class),   

           @Result(name="input",value="/xxx

    .jsp",type=org.apache.struts2.dispatcher.ServletRedirectResult.class)   

    })   

    怎么來創建這種注解呢?

    其實可以把@Results的參數看作是一個@Result的數組

    定義如下:

    import java.lang.annotation.ElementType;

    import java.lang.annotation.Retention;

    import java.lang.annotation.RetentionPolicy;

    import java.lang.annotation.Target;

    @Target(ElementType.METHOD)

    @Retention(RetentionPolicy.RUNTIME)

    public @interface Result {

    }

    import java.lang.annotation.ElementType;

    import java.lang.annotation.Retention;

    import java.lang.annotation.RetentionPolicy;

    import java.lang.annotation.Target;

    @Target(ElementType.METHOD)

    @Retention(RetentionPolicy.RUNTIME)

    public @interface Results {

    Result[] value();   //沒什么特別的,只是接受了一個數組參數而已

    }

    四、讓注解可以去修飾多個Target類型

    我么使用@Target注解來指定某個注解可以修飾的類型,實際上,同上面一樣,@Target接受的是一個數組參數,利用這一特性我們可以讓注解來修飾多個類型。

    import java.lang.annotation.ElementType;

    import java.lang.annotation.Retention;

    import java.lang.annotation.RetentionPolicy;

    import java.lang.annotation.Target;

    @Target({ElementType.PARAMETER,ElementType.FIELD})

    @Retention(RetentionPolicy.RUNTIME)

    public @interface Param {

    }

    OK!這個注解既可以修飾參數也可以修飾類的屬性

    posted @ 2010-08-02 14:31 遲宏澤 閱讀(3800) | 評論 (0)編輯 收藏

    導航

    <2010年8月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    統計

    常用鏈接

    留言簿

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲码一区二区三区| 久久久久久久久免费看无码 | 99精品视频在线免费观看| 亚洲性猛交XXXX| 久久国产精品免费| 亚洲中文字幕无码爆乳AV| a级日本高清免费看| 水蜜桃亚洲一二三四在线| 免费A级毛片无码专区| 亚洲精品韩国美女在线| 在线看片无码永久免费视频| 亚洲乱理伦片在线观看中字| 国产一区二区三区在线观看免费| 美女一级毛片免费观看| 国产亚洲日韩一区二区三区| 久别的草原电视剧免费观看| 亚洲一卡2卡4卡5卡6卡在线99 | 国产免费久久精品99re丫y| 亚洲砖码砖专无区2023| 国产成人免费a在线资源| 色爽黄1000部免费软件下载| 亚洲AV一宅男色影视| 日本免费一区二区在线观看| 亚洲综合成人婷婷五月网址| 免费人成激情视频| 今天免费中文字幕视频| 亚洲精彩视频在线观看| 国产乱人免费视频| 成全视频高清免费观看电视剧| 亚洲精品免费在线视频| 国产成人在线免费观看| 青柠影视在线观看免费高清| 亚洲一区二区免费视频| 亚洲男人的天堂在线va拉文| 99re热精品视频国产免费| 亚洲精品动漫免费二区| 亚洲精品国产字幕久久不卡| 无码一区二区三区AV免费| 一本大道一卡二大卡三卡免费| 亚洲美女中文字幕| 亚洲日韩在线观看|