<sup id="m40ya"></sup>
  • 
    
  • <kbd id="m40ya"></kbd>
    <samp id="m40ya"></samp>
    <ul id="m40ya"></ul>
  • 更多精彩內(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 无码国产精品一区二区免费式芒果 | 麻豆精品久久久一区二区| 99热在线精品播放| 日本精品卡一卡2卡三卡| 成人伊人精品色XXXX视频 | 国产精品久久久久久搜索| 国产亚洲综合精品一区二区三区| 国产亚洲婷婷香蕉久久精品| 国产乱码精品一区二区三区中| 黑人精品videos亚洲人| 一本大道无码人妻精品专区| 97久久精品亚洲中文字幕无码| 国产精品久久亚洲一区二区| 国产精品毛片一区二区三区| 精品综合久久久久久蜜月| 久热青青青在线视频精品| 国产精品任我爽爆在线播放| 日韩视频在线精品视频免费观看| 老司机亚洲精品影视www| 国产在线精品二区赵丽颖| 97麻豆精品国产自产在线观看| 波多野结衣精品一区二区三区 | 精品国产一区二区三区不卡| 北条麻妃久久99精品| 国产农村妇女精品一二区| 久久人午夜亚洲精品无码区| 久久精品国产亚洲AV麻豆王友容 | 国产精品无码翘臀在线观看| 久久久免费精品re6| 国产精品国产亚洲精品看不卡| 中文字幕日韩精品在线| 国产视频精品久久| 99re视频热这里只有精品7| 久久精品无码午夜福利理论片| 久久精品视频亚洲| 久久精品国产亚洲网站| 国产精品伦一区二区三级视频 | 久久久国产成人精品| 国产区精品高清在线观看| 嫩草影院精品视频在线观看| 尤物精品视频一区二区三区|