国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

34_注解的定義與反射調用

2019-11-14 22:48:19
字體:
來源:轉載
供稿:網友
34_注解的定義與反射調用

自定義注解及其應用
  • 定義一個簡單的注解: public @interface MyAnnotation{}
package com.itcast.day2;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;//Retention默認為class階段,注解MyAnnotation的生命周期為運行階段@Retention(RetentionPolicy.RUNTIME)//默認值為任何元素,若在數組里只填寫METHOD則使用注解的類編譯報錯@Target({ElementType.METHOD,ElementType.TYPE})public @interface MyAnnotation {}/** * Rentention * 關于java程序的三個階段 * source階段: .java--->編譯--->.class * class階段:  .class-->進入jvm檢查階段--->字節碼 * runtime階段: 已經通過安全檢查--被調入內存,被視為字節碼 *  */
  • 把它加在某個類上:@MyAnnotation public class MyAnnotationTest{}
package com.itcast.day2;@MyAnnotationpublic class MyAnnotationTest {}
  • 用反射進行測試AnnotationTest 的定義上是否有@MyAnnotation
package com.itcast.day2;public class MyAnnotationTestRun {    public static void main(String[] args) {        if(MyAnnotationTest.class.isAnnotationPResent(MyAnnotation.class)){            MyAnnotation MyAnnotation=MyAnnotationTest.class.getAnnotation(MyAnnotation.class);            System.out.println(MyAnnotation);//com.itcast.day2.MyAnnotation()        }    }}
  • 根據反射測試的問題,引入@Rentention元注解的講解,其三種取值:

RententionPolicy.SOURCE、RententionPolicy.CLASS、RententionPolicy.RUNTIME;

分別對應java源代碼—>class文件—>內存中的字節碼

    • 思考: @Override、@SuppressWamings和@Deprecated這三個注解的屬性值分別是什么?

                 @Override ,用于給編譯器看,是否符合重寫規范(方法名,參數列表,返回值必須相同)。一般是自己寫的代碼.------SOURCE階段

                 @SuppressWarnings 用于告訴編譯器,不要在編譯階段發出警告。一般是自己寫的代碼.---SOURCE階段

                 @Deprecated 用于標注方法是否過時。一定是在調入內存后,運行期掃描二進制。有可能是別人寫的我在調用。---RUNTIME階段

  • 演示和講解@Target元注解
    • Target的默認值為任何元素,設置Target等于ElementType.METHOD,原來加在類上的注解就報錯了,改為用數組方式設置{ElementType.METHOD,ElementType.TYPE}就可以了。
  • 元注解以及其枚舉屬性值不用記,只要會看jdk提供的幾個基本注解的API幫助文檔的定義或其源代碼,按圖索驥即可查到,或者直接看java.lang.annotation包下的類。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永安市| 台东县| 新乐市| 木兰县| 玉环县| 柳州市| 麻城市| 瑞安市| 东方市| 山东省| 大港区| 盐源县| 瑞安市| 永登县| 芦山县| 丘北县| 鄂尔多斯市| 淳安县| 昭苏县| 英超| 赤城县| 康保县| 南京市| 宣武区| 天祝| 临高县| 穆棱市| 邮箱| 双流县| 高邮市| 晴隆县| 乐清市| 卫辉市| 恭城| 修水县| 新兴县| 辰溪县| 开封县| 金门县| 宝应县| 育儿|