<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 国99精品无码一区二区三区| 四虎AV永久在线精品免费观看| 亚洲精品无码不卡在线播HE| 国产区香蕉精品系列在线观看不卡| 久99久热只有精品国产女同| 亚洲国产精品VA在线看黑人| 久久久久国产精品麻豆AR影院 | 人人妻人人澡人人爽人人精品浪潮 | 欧美精品VIDEOSEX性欧美| 久久99精品久久久久子伦| 亚洲精品无码专区在线在线播放| 亚洲国产成人精品女人久久久 | 精品福利资源在线| 久久久久久亚洲精品不卡 | 精品无人区无码乱码毛片国产| 精品国产香蕉伊思人在线又爽又黄 | 亚洲国产精品国产自在在线 | 国产乱人伦偷精品视频不卡| 国产成人麻豆精品午夜福利在线| 免费看国产精品3a黄的视频| 久久久久久久久66精品片| 亚洲精品影院久久久久久| 色妞ww精品视频7777| 久久精品亚洲中文字幕无码网站| 国语精品一区二区三区| 国产极品白嫩精品| 国产啪精品视频网站| 91精品一区国产高清在线| 国产亚洲精品精品国产亚洲综合 | 国产AV午夜精品一区二区入口| 99精品国产自在现线观看| 在线精品国产一区二区三区 | 自拍偷自拍亚洲精品播放| 无码人妻精品内射一二三AV | 久久久久亚洲精品天堂| 无码欧精品亚洲日韩一区| 久久亚洲精品成人综合| 日韩精品人妻系列无码专区| 99久久99久久精品| 久久精品国产亚洲AV蜜臀色欲 | 人妻精品久久无码专区精东影业|