<th id="wu2k2"><s id="wu2k2"></s></th> <blockquote id="wu2k2"></blockquote>
  • <tr id="wu2k2"></tr>
  • <samp id="wu2k2"><tbody id="wu2k2"></tbody></samp><samp id="wu2k2"><tbody id="wu2k2"></tbody></samp>
  • 更多精彩內(nèi)容,歡迎關注:

    視頻號
    視頻號

    抖音
    抖音

    快手
    快手

    微博
    微博

    java annotation

    文檔

    java annotation

    annotation是Java增加對元數(shù)據(jù)的支持,注解(annotation)與注釋是有一定區(qū)別的,可以把注解理解為代碼里的特殊標記,這些標記可以在編譯,類加載,運行時被讀取,并執(zhí)行相應的處理。
    推薦度:
    導讀annotation是Java增加對元數(shù)據(jù)的支持,注解(annotation)與注釋是有一定區(qū)別的,可以把注解理解為代碼里的特殊標記,這些標記可以在編譯,類加載,運行時被讀取,并執(zhí)行相應的處理。

    java annotation是什么,讓我們一起了解一下?

    annotation是Java增加對元數(shù)據(jù)的支持,注解(annotation)與注釋是有一定區(qū)別的,可以把注解理解為代碼里的特殊標記,這些標記可以在編譯,類加載,運行時被讀取,并執(zhí)行相應的處理。

    Java注解(Annotation)原理是什么?

    注解本質(zhì)是一個繼承了Annotation的特殊接口,其具體實現(xiàn)類是Java運行時生成的動態(tài)代理類。而我們通過反射獲取注解時,返回的是Java運行時生成的動態(tài)代理對象$Proxy1。

    通過代理對象調(diào)用自定義注解(接口)的方法,會最終調(diào)用AnnotationInvocationHandler的invoke方法。該方法會從memberValues這個Map中索引出對應的值,而memberValues的來源是Java常量池。

    實際上Java注解與普通修飾符(public、static、void等)的使用方式并沒有多大區(qū)別,下面的例子是常見的注解:

    public?class?AnnotationDemo?{
    ???
    ???@Test
    ???public?static?void?A(){
    ???????System.out.println("Test.....");
    ???}
    ???@Deprecated
    ???@SuppressWarnings("uncheck")
    ???public?static?void?B(){
    ???}
    }

    通過在方法上使用@Test注解后,在運行該方法時,測試框架會自動識別該方法并單獨調(diào)用,@Test實際上是一種標記注解,起標記作用,運行時告訴測試框架該方法為測試方法。

    而對于@Deprecated和@SuppressWarnings(“uncheck”),則是Java本身內(nèi)置的注解,在代碼中,可以經(jīng)常看見它們,但這并不是一件好事,畢竟當方法或是類上面有@Deprecated注解時,說明該方法或是類都已經(jīng)過期不建議再用,@SuppressWarnings 則表示忽略指定警告,比如@SuppressWarnings(“uncheck”),這就是注解的最簡單的使用方式。

    實戰(zhàn)操作:

    首先寫一個簡單的自定義注解小程序,先自定義一個運行時注解。

    @Target(ElementType.TYPE)
    @Retention(RetentionPolicy.RUNTIME)
    public?@interface?HelloAnnotation?{
    
    ????String?say()?default?"Hi";
    
    }

    然后在Main函數(shù)中解析注解。

    @HelloAnnotation(say?=?"Do?it!")
    public?class?TestMain?{
    ????public?static?void?main(String[]?args)?{
    ????????HelloAnnotation?annotation?=?TestMain.class.getAnnotation(HelloAnnotation.class);//獲取TestMain類上的注解對象
    ????????System.out.println(annotation.say());//調(diào)用注解對象的say方法,并打印到控制臺
    ????}
    }

    運行程序,輸出結(jié)果如下:

    Do?it!

    以上就是小編今天的分享了,希望可以幫助到大家。

    文檔

    java annotation

    annotation是Java增加對元數(shù)據(jù)的支持,注解(annotation)與注釋是有一定區(qū)別的,可以把注解理解為代碼里的特殊標記,這些標記可以在編譯,類加載,運行時被讀取,并執(zhí)行相應的處理。
    推薦度:
    為你推薦
    資訊專欄
    熱門視頻
    相關推薦
    java ant java apns 蘋果13藍牙搜索不到設備怎么辦 java append java application java apriori java archive java arcsin java arccos java arctan java args java arrays.sort java ascii java asmx java aspectj java aspose java assembly java async win10專業(yè)版和企業(yè)版的區(qū)別 java bacnet java android iphone呼叫失敗是什么原因 java algorithm ipad2是哪年的 java akka java aggregation java aes加密 java advice java addall java add java actuator 西北五省是哪五省 java activity java activiti 甕安縣屬于哪個市 java active 茉莉花茶是綠茶嗎 java a++和++a的區(qū)別 熊貓只有中國才有的嗎 idea新建一個java項目
    Top 亚洲AV永久无码精品一区二区国产| 性色精品视频网站在线观看| 亚洲AV成人精品一区二区三区| 亚洲国产精品VA在线看黑人| 亚洲国产精品一区二区第一页免| 亚洲精品久久无码av片俺去也 | 无码精品人妻一区| 亚洲精品精华液一区二区| 日本伊人精品一区二区三区| 久久久精品国产Sm最大网站| 国产成人综合久久精品亚洲| 99久久这里只精品国产免费| 亚洲精品国产成人中文| 久久精品国产精油按摩| 日韩精品无码免费专区午夜不卡| 女人高潮内射99精品| 日韩精品一区二区三区国语自制| 日本一二三精品黑人区| 老司机亚洲精品影院| 国产精品丝袜一区二区三区| 国内精品伊人久久久久影院对白 | 国产高清国内精品福利99久久| 国产欧美另类久久久精品图片| 91精品国产综合久久青草| 国产精品女同一区二区| a级亚洲片精品久久久久久久| 一本一本久久a久久精品综合| 国产在线精品一区在线观看| 国产精品亚洲一区二区三区在线观看| 国产精品中文久久久久久久| 精品综合久久久久久97| 久久国产免费观看精品3| 99re九精品视频在线视频| 久久永久免费人妻精品| 久久精品丝袜高跟鞋| 久久丝袜精品综合网站| 日韩人妻无码精品久久久不卡| 久久99国产精品| 99久久精品免费视频| 久久亚洲精品无码VA大香大香| 精品人妻系列无码天堂|