<strike id="cakm0"></strike>
  • <button id="cakm0"><dl id="cakm0"></dl></button>
  • <samp id="cakm0"><tbody id="cakm0"></tbody></samp>
    <samp id="cakm0"><pre id="cakm0"></pre></samp><ul id="cakm0"></ul>
    <strike id="cakm0"></strike>
    <li id="cakm0"></li>
  • <ul id="cakm0"></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品| 国产精品无码一区二区在线| 三上悠亚久久精品| 久久久久久无码国产精品中文字幕| 久久久一本精品99久久精品36| 99re最新地址精品视频| 99re6在线视频精品免费| 国产真实乱子伦精品| 8090成人午夜精品| 漂亮人妻被黑人久久精品| 伊人久久精品亚洲午夜| 这里只有精品视频| 国产麻豆剧传媒精品国产AV| 久久只有这精品99| 91精品免费久久久久久久久| 久久久亚洲精品视频| 高清国产精品人妻一区二区 | 国产精品∧v在线观看| 精品人妻久久久久久888| 亚洲高清国产拍精品26U| 99精品国产在热久久| 国产精品天干天干在线综合 | 国内精品久久久久久不卡影院| 免费观看国产精品| 色综合91久久精品中文字幕| 中文人妻熟妇乱又伦精品 | 国产精品天天在线| 香蕉久久夜色精品国产| 国产精品卡一卡二卡三| 国产精品亚洲四区在线观看| 久99久热只有精品国产女同| 亚洲精品美女视频| 91免费国产精品| 91精品啪在线观看国产18|