<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                >[success] # java 元注解 1. 元注解是可以**注解到注解上的注解**,或者說**元注解是一種基本注解**,但是它能夠應用到其它的注解上面。 2. 元注解主要有 **@Retention、@Documented、@Target、@Inherited、@Repeatable**。 >[danger] ##### @Retention 1. RetentionPolicy.SOURCE 注解只在源碼階段保留,在編譯器進行編譯時它將被丟棄忽視。 2. RetentionPolicy.CLASS 注解只被保留到編譯進行的時候,它并不會被加載到 JVM 中,默認方式。 3. RetentionPolicy.RUNTIME 注解可以保留到程序運行的時候,它會被加載進入到 JVM 中,所以在程序運行時可以獲取到它們。 ~~~ import java.lang.annotation.*; //@Retention(RetentionPolicy.SOURCE) // 表示下面的注解在源代碼中有效 //@Retention(RetentionPolicy.CLASS) // 表示下面的注解在字節碼文件中有效,默認方式(不寫) @Retention(RetentionPolicy.RUNTIME) // 表示下面的注解在運行時有效 public @interface MyAnnotation { } ~~~ >[danger] ##### @Documented 1. 使用javadoc工具可以從程序源代碼中抽取類、方法、成員等注釋形成一個和源代碼配套的API幫助文檔,而該工具抽取時默認不包括注解內容。 2. @Documented用于指定被該注解將被javadoc工具提取成文檔。 3. 定義為@Documented的注解必須設置Retention值為RUNTIME。 ~~~ @Documented // 表示下面的注解信息可以被javadoc工具提取到API文檔中,很少使用 public @interface MyAnnotation { } ~~~ >[danger] ##### @Target | 類型 |作用 | | --- | --- | | ElementType.ANNOTATION_TYPE| 可以給一個注解進行注解| | ElementType.CONSTRUCTOR | 可以給構造方法進行注解| | ElementType.FIELD | 可以給屬性進行注解| | ElementType.LOCAL_VARIABLE | 可以給局部變量進行注解| | ElementType.METHOD | 可以給方法進行注解| | ElementType.PACKAGE| 可以給一個包進行注解| | ElementType.PARAMETER | 可以給一個方法內的參數進行注解| | ElementType.TYPE | 可以給類型進行注解,比如類、接口、枚舉| ~~~ // 表示下面的注解可以用于類型、構造方法、成員變量、成員方法、參數 的修飾 @Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER }) public @interface MyAnnotation { } ~~~ >[danger] ##### @Inherited 1. **@Inherited**并不是說注解本身可以繼承,而是說如果一個超類被該注解標記過的注解進行注解時,如果子類沒有被任何注解應用時,則子類就繼承超類的注解 >[danger] ##### @Repeatable 1. 可以重復使用同一個注解 * 正常重復使用一個注解會報錯 ![](https://img.kancloud.cn/f6/84/f6848cc959cfc454e3d283f09e9962ce_643x191.png) * 解決一可以聲明一個數組類型注解(java8 之前解決方案) ~~~ public @interface MyAnnotation { public String value(); } ~~~ ~~~ public @interface MyAnnotations { public MyAnnotation[] value(); } ~~~ ~~~ @MyAnnotations({ @MyAnnotation(value = "1"), @MyAnnotation(value = "2") }) public class TestAnnotation { int a = 1; } ~~~ * java 8之后解決 ~~~ public @interface MyAnnotations { public MyAnnotation[] value(); } ~~~ ~~~ import java.lang.annotation.*; @Repeatable(value = MyAnnotations.class) public @interface MyAnnotation { public String value(); } ~~~ ~~~ @MyAnnotation(value = "1") @MyAnnotation(value = "2") public class TestAnnotation { int a = 1; } ~~~ >[danger] ##### 其他 | 名稱 | 作用 | | --- | --- | |@author |標明開發該類模塊的作者,多個作者之間使用,分割| |@version| 標明該類模塊的版本| |@see |參考轉向,也就是相關主題| |@since |從哪個版本開始增加的| |@param |對方法中某參數的說明,如果沒有參數就不能寫| |@return| 對方法返回值的說明,如果方法的返回值類型是void就不能寫| |@exception |對方法可能拋出的異常進行說明| |@Override |限定重寫父類方法, 該注解只能用于方法| |@Deprecated |用于表示所修飾的元素(類, 方法等)已過時| |@SuppressWarnings| 抑制編譯器警告|
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看