<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在线观看| 亚洲资源在线视频| 一级毛片aaaaaa免费看| 亚洲精品国产suv一区88| 国产福利在线免费| 亚洲av成人综合网| 美女扒开尿口给男人爽免费视频| 成年网站免费视频A在线双飞| 亚洲精品高清国产麻豆专区| 91禁漫免费进入| 久久亚洲精品中文字幕| 18勿入网站免费永久| 亚洲熟妇久久精品| 又爽又高潮的BB视频免费看 | 青青操免费在线视频| 国产成人精品日本亚洲| 亚洲国产成人AV在线播放 | 国产亚洲高清在线精品不卡| 久久国产乱子伦精品免费看| 亚洲男女性高爱潮网站| 国产乱码免费卡1卡二卡3卡| 亚洲乱人伦中文字幕无码| 国产乱子精品免费视观看片| 中文字幕亚洲精品无码| 69视频免费在线观看| 亚洲AV无码精品蜜桃| 免费一级做a爰片久久毛片潮喷| 国产日韩在线视频免费播放| 免费看国产精品麻豆| 两个人日本WWW免费版| 国产a v无码专区亚洲av| 亚洲av无码兔费综合| 成熟女人牲交片免费观看视频| 亚洲AV无码国产精品永久一区| 亚洲色欲久久久综合网东京热| www.免费在线观看| 亚洲大片免费观看| www亚洲一级视频com| 亚洲av综合日韩| 亚洲精品免费观看|