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

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

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

    Java注解使用的幾個小技巧

    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 on 2010-08-02 14:31 遲宏澤 閱讀(3800) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    導航

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

    統計

    常用鏈接

    留言簿

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 免费A级毛片在线播放不收费| 色噜噜亚洲精品中文字幕| 国产亚洲日韩在线a不卡| 免费国产精品视频| 爽爽爽爽爽爽爽成人免费观看| 亚洲综合激情另类小说区| 免费看香港一级毛片| 中文字幕永久免费视频| 亚洲三级在线播放| a级亚洲片精品久久久久久久| 青青在线久青草免费观看| 九九久久国产精品免费热6| 亚洲欧洲国产综合| 亚洲天堂中文字幕在线| 69堂人成无码免费视频果冻传媒| 国产成人久久精品亚洲小说| 亚洲成年人在线观看| 四虎影视免费永久在线观看| 无码国产精品一区二区免费式芒果 | 免费国产在线精品一区| 久久精品a亚洲国产v高清不卡| 亚洲AV网站在线观看| 美丽的姑娘免费观看在线播放 | 两性色午夜视频免费播放| 国产精品亚洲精品观看不卡| 亚洲乱色熟女一区二区三区丝袜| 成年女人午夜毛片免费视频 | AV在线亚洲男人的天堂| 成人免费午夜无码视频| 免费视频成人手机在线观看网址| 亚洲国产成人AV网站| 亚洲一级毛片免费在线观看| 亚洲日韩中文无码久久| 免费一级成人毛片| 女人18毛片水最多免费观看| 无码人妻丰满熟妇区免费| 99免费精品视频| 免费无码午夜福利片| 亚洲精华国产精华精华液网站| 亚洲酒色1314狠狠做| 亚洲日韩精品一区二区三区无码|