<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

    統計

    常用鏈接

    留言簿

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 91在线老王精品免费播放| 免费一级全黄少妇性色生活片 | 久久亚洲精品成人综合| 一级做a爱片特黄在线观看免费看| 亚洲VA中文字幕无码一二三区| 日韩精品一区二区亚洲AV观看| 亚洲国产综合AV在线观看| 中文字幕免费观看视频| 亚洲中文字幕无码一区二区三区| 一边摸一边桶一边脱免费视频 | 国产一区二区三区在线免费| 激情无码亚洲一区二区三区| 国产精品二区三区免费播放心| 香港一级毛片免费看| 亚洲一级特黄无码片| 亚洲人成片在线观看| 韩国欧洲一级毛片免费| 精品在线观看免费| 中文亚洲AV片在线观看不卡| 久久黄色免费网站| 亚洲91精品麻豆国产系列在线| 全免费一级午夜毛片| 成年网站免费入口在线观看| 日本红怡院亚洲红怡院最新| 182tv免费观看在线视频| 亚洲高清一区二区三区电影| 亚洲第一网站男人都懂| 亚洲欧美日韩中文无线码 | 五月亭亭免费高清在线| 亚洲熟女综合一区二区三区| 69视频在线观看高清免费| 亚洲国产最大av| 亚洲成?Ⅴ人在线观看无码| 免费一级毛片无毒不卡| 亚洲综合色区中文字幕| 国产亚洲AV夜间福利香蕉149| 69视频在线观看高清免费| 美女免费精品高清毛片在线视| 亚洲Av无码精品色午夜| 在线免费一区二区| 国产一级淫片a免费播放口|