<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

    統計

    常用鏈接

    留言簿

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久精品国产亚洲AV大全| 亚洲国产一级在线观看 | 日本在线免费播放| 亚洲美女高清一区二区三区 | EEUSS影院WWW在线观看免费| 国产伦精品一区二区三区免费下载| 中文字幕精品三区无码亚洲| aa级一级天堂片免费观看| 91嫩草亚洲精品| 亚洲第一成年免费网站| 亚洲国产成人九九综合| 毛片a级毛片免费播放下载| 亚洲中文字幕无码久久| 我要看WWW免费看插插视频| 亚洲av无码专区青青草原| 又粗又大又长又爽免费视频| 一级A毛片免费观看久久精品| 亚洲视频一区二区| 国产一区二区免费| 亚洲电影免费观看| 最近最好的中文字幕2019免费| 亚洲欧美aⅴ在线资源| 亚洲а∨天堂久久精品| 中文字幕免费在线播放| 91亚洲国产在人线播放午夜| 人成午夜免费视频在线观看| 亚洲国产av玩弄放荡人妇| 免费午夜爽爽爽WWW视频十八禁 | 亚洲精品456播放| 午夜精品射精入后重之免费观看| 亚洲欧洲日韩综合| 国产在线a不卡免费视频| 久久免费国产精品| 亚洲精品国产成人| 一本色道久久88综合亚洲精品高清 | 香蕉高清免费永久在线视频| 日韩精品视频在线观看免费| 亚洲国产成人久久综合一 | 亚洲一级毛片免费在线观看| 免费一级毛片女人图片| 国产免费AV片在线观看|