<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 色噜噜精品视频在线观看| 亚洲人成精品久久久久| 91精品国产免费| 国产在线精品一区二区夜色| 国产精品无码无卡在线观看久| 99热这里有精品| 精品免费tv久久久久久久| 热99精品只有里视频最新| 午夜麻豆国产精品无码| 78成人精品电影在线播放 | 欧美日韩亚洲精品| 99热这里有免费国产精品| 在线观看国产精品日韩av| www国产亚洲精品久久久| 国产精品亚洲综合天堂夜夜| 久久精品国产只有精品2020 | 亚洲热线99精品视频| 影院无码人妻精品一区二区| 最新69国产成人精品免费视频动漫| 亚洲精品国偷自产在线| 国产福利电影一区二区三区久久久久成人精品综合 | 国产va免费精品观看精品| 91精品国产色综合久久| 国产91精品久久久久久| 91精品国产高清久久久久久国产嫩草| 亚洲国产精品特色大片观看完整版| 久久亚洲国产成人精品无码区| 精品无码中出一区二区| 国产精品成人网站| 国产精品毛片AV久久66| 久久精品桃花综合| 2022国产精品不卡a| 精品久久久久中文字幕日本| 91精品日韩人妻无码久久不卡 | 一区二区国产精品| 亚洲国产精品碰碰| 亚洲精品成人在线| 久久99精品久久久久久不卡| 久久精品国产亚洲7777| 久久国产精品免费| 中文字幕在线精品|