精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

玩轉(zhuǎn)Java注解:元注解、內(nèi)置注解、自定義注解的原理和實(shí)現(xiàn)

開(kāi)發(fā) 后端
Java 注解(Annotation)又稱 Java 標(biāo)注,是 JDK5.0 引入的一種注釋機(jī)制。重點(diǎn):和 Javadoc 不同,Java 標(biāo)注可以通過(guò)反射獲取標(biāo)注內(nèi)容。

前言

Java 注解(Annotation)又稱 Java 標(biāo)注,是 JDK5.0 引入的一種注釋機(jī)制。重點(diǎn):和 Javadoc 不同,Java 標(biāo)注可以通過(guò)反射獲取標(biāo)注內(nèi)容。

大話空話不用說(shuō)太多,簡(jiǎn)而言之,在編譯器生成類文件時(shí),標(biāo)注 可以被嵌入到字節(jié)碼中。Java 虛擬機(jī)可以保留標(biāo)注內(nèi)容,在運(yùn)行時(shí)可以獲取到標(biāo)注內(nèi)容 。當(dāng)然它也支持自定義 Java 標(biāo)注。反射+注解,是不是感覺(jué)Java變成一種動(dòng)態(tài)語(yǔ)言?哈哈哈!

我覺(jué)得注解可以分為三個(gè)部分來(lái)講:內(nèi)置注解,元注解,自定義注解。

一、內(nèi)置注解

1、@Override 重寫

概念:檢查該方法是否是重寫方法。如果發(fā)現(xiàn)其父類,或者是引用的接口中并沒(méi)有該方法時(shí),會(huì)報(bào)編譯錯(cuò)誤。 

  1. //這個(gè)extends 不要在意,我寫上去只是為了更加方便直觀的去理解,Object是萬(wàn)物之源,不寫也會(huì)默認(rèn)是其子類,不用解釋過(guò)多吧?  
  2. public class Annotation1 extends Object{  
  3.     @Override  
  4.     public String toString (){  
  5.         return "我是重新定義過(guò)的toString方法";  
  6.     }  

@Override(重寫),這個(gè)大家應(yīng)該很熟悉,重寫父類的方法。我們可以看下Object類中toString()是什么樣子的。

那么顯而易見(jiàn),使用了@Override(重寫)注解,方法名、方法參數(shù)必須得和父類保持一致,否則會(huì)報(bào)錯(cuò)。如下圖所示:

如果不加@Override(重寫)注解,則正常編譯。

2、@Deprecated 過(guò)期警告

概念:標(biāo)記過(guò)時(shí)方法。如果使用該方法,會(huì)報(bào)編譯警告。在開(kāi)發(fā)中,我們經(jīng)常能遇到這樣的情況,如下圖:

在jdk中有大量這樣的方法,我就不舉例了,自己寫一個(gè)可能會(huì)更加方便理解。 

  1. public class Annotation1 extends Object{  
  2.     public static void main(String[] args) {  
  3.         testDeprecated.toString1();  
  4.     }  
  5.  
  6. class testDeprecated {  
  7.     @Deprecated  
  8.     public static String toString1(){  
  9.         return "我是重新定義過(guò)的toString方法";  
  10.     }  

注意點(diǎn):這個(gè)不是報(bào)錯(cuò),只是警告,提醒我們這個(gè)方法可能會(huì)有問(wèn)題,可能有更好的方法來(lái)實(shí)現(xiàn)!

3、@SuppressWarnings 忽略警告

概念:指示編譯器去忽略注解中聲明的警告。

平時(shí)開(kāi)發(fā)中,我們會(huì)遇到這樣的情況,如下圖:

這也不是錯(cuò)誤,這是提醒我們,該方法沒(méi)有使用到,警告提醒的作用。加上@SuppressWarnings注解后。 

  1. public class Annotation1 extends Object{  
  2.     public static void main(String[] args) {  
  3.     }  
  4.     @SuppressWarnings("all")  
  5.     public static void testSuppressWarnings(){  
  6.         System.out.println("測(cè)試+testSuppressWarnings忽略警告!");  
  7.     }  

方法成功高亮起來(lái),并且沒(méi)有警告提示了!

我們可以點(diǎn)進(jìn)去看下這個(gè)注解為什么需要參數(shù)?

看這里,這個(gè)不是方法哦,這是參數(shù)。

在注解中的參數(shù)格式:calss + 參數(shù)名 + ()!這個(gè)需要強(qiáng)行記憶哦,回頭我們自定義注解時(shí)也需要用到。換一種寫法加深理解!如下圖:

注意點(diǎn):當(dāng)注解中只有一個(gè)參數(shù)時(shí),我們無(wú)需加上參數(shù)名,注解會(huì)自動(dòng)幫我們匹配的。

二、元注解

概念:顧名思義,元注解就是給注解使用的注解!

1、@Retention 作用域-(常用)

概念:表示在什么級(jí)別保存該注解信息。在實(shí)際開(kāi)發(fā)中,我們一般都寫RUNTIME,除非項(xiàng)目有特殊需求!我們看下@Retention的源碼。

可以看到,需要一個(gè)參數(shù),進(jìn)參數(shù)瞅瞅。

  •  SOURCE:源代碼時(shí)有用。
  •  CLASS:class文件中有用,但會(huì)被jvm丟棄。
  •  RUNTIME:運(yùn)行時(shí)有用。
  •  關(guān)系:RUNTIME>CLASS>SOURCE

后面我們自定義注解時(shí),每個(gè)都需要用該注解!

2、@Documented 作用文檔

概念:將此注解包含在 javadoc 中 ,它代表著此注解會(huì)被javadoc工具提取成文檔。

老規(guī)矩看下源碼:

無(wú)參的注解,作用域?yàn)镽etentionPolicy.RUNTIME,運(yùn)行時(shí)有用!這個(gè)只是用來(lái)作為標(biāo)記,了解即可,在實(shí)際運(yùn)行后會(huì)將該注解寫入javadoc中,方便查看。

3、@Target 目標(biāo)-(常用)

概念:標(biāo)記這個(gè)注解應(yīng)該是使用在哪種 Java 成員上面!

參數(shù)源碼:

注意這里是數(shù)組格式的參數(shù),證明可以傳多個(gè)值。

  •  @Target(ElementType.TYPE)——接口、類、枚舉、注解
  •  @Target(ElementType.FIELD)——字段、枚舉的常量
  •  @Target(ElementType.METHOD)——方法
  •  @Target(ElementType.PARAMETER)——方法參數(shù)
  •  @Target(ElementType.CONSTRUCTOR) ——構(gòu)造函數(shù)
  •  @Target(ElementType.LOCAL_VARIABLE)——局部變量
  •  @Target(ElementType.ANNOTATION_TYPE)——注解
  •  @Target(ElementType.PACKAGE)——包

我們來(lái)試一下:

目標(biāo)不對(duì)會(huì)報(bào)錯(cuò)的哦!我們將其改成方法上!編譯即正常通過(guò)。

其他的作用域大家可以去自行嘗試,篇幅問(wèn)題,無(wú)法做到每個(gè)都去試一遍!

4、@Inherited 繼承

概念:標(biāo)記這個(gè)注解是繼承于哪個(gè)注解類(默認(rèn) 注解并沒(méi)有繼承于任何子類)。

這個(gè)很簡(jiǎn)單,就是當(dāng)@InheritedAnno注解加在某個(gè)類A上時(shí),假如類B繼承了A,則B也會(huì)帶上該注解。

5、新注解-(了解即可)

從 Java 7 開(kāi)始,額外添加了 3 個(gè)注解:

  •  @SafeVarargs - Java 7 開(kāi)始支持,忽略任何使用參數(shù)為泛型變量的方法或構(gòu)造函數(shù)調(diào)用產(chǎn)生的警告。
  •  @FunctionalInterface - Java 8 開(kāi)始支持,標(biāo)識(shí)一個(gè)匿名函數(shù)或函數(shù)式接口。
  •  @Repeatable - Java 8 開(kāi)始支持,標(biāo)識(shí)某注解可以在同一個(gè)聲明上使用多次。

三、自定義注解

我們來(lái)定義一個(gè)屬于自己的注解。 

  1. @Retention(value = RetentionPolicy.RUNTIME)  
  2. @Target(value = ElementType.METHOD)  
  3. @Inherited  
  4. @interface myAnnotation {  
  5.     String name() default "";  
  6.     int age() default 18;  
  7.     String like();  
  8.     String IDCard() default "";  

格式:修飾符(pulic)+ @interface +注解名+ {參數(shù)等}

可利用default 設(shè)置默認(rèn)值,設(shè)定了默認(rèn)值后使用注解時(shí)不傳值也不會(huì)報(bào)錯(cuò),反之報(bào)錯(cuò)!

我們只需要傳沒(méi)有默認(rèn)值的參數(shù)即可。

如果不傳則報(bào)錯(cuò):

總結(jié)

主要就是要注意元注解的使用,因?yàn)槲覀冏远x注解時(shí)必須得用到!其實(shí)注解主要配合反射來(lái)用,在此就不展開(kāi)來(lái)敘述了。 

 

責(zé)任編輯:龐桂玉 來(lái)源: Java知音
相關(guān)推薦

2023-03-30 16:16:00

Java自定義注解開(kāi)發(fā)

2023-10-24 13:48:50

自定義注解舉值驗(yàn)證

2022-11-01 11:15:56

接口策略模式

2024-10-14 17:18:27

2024-12-27 15:37:23

2022-02-17 07:10:39

Nest自定義注解

2023-10-11 07:57:23

springboot微服務(wù)

2023-10-09 07:37:01

2017-08-03 17:00:54

Springmvc任務(wù)執(zhí)行器

2024-07-02 11:42:53

SpringRedis自定義

2024-10-09 10:46:41

springboot緩存redis

2024-09-02 07:54:36

2020-12-02 11:56:16

Java注解Excel

2020-09-04 13:30:43

Java自定義代碼

2023-02-07 09:17:19

Java注解原理

2020-11-25 11:20:44

Spring注解Java

2021-02-20 11:40:35

SpringBoot占位符開(kāi)發(fā)技術(shù)

2012-02-09 10:42:24

Java

2024-04-03 09:18:03

Redis數(shù)據(jù)結(jié)構(gòu)接口防刷

2025-06-09 01:01:00

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

亚洲精品免费视频| 久久成人在线| 精品剧情v国产在线观看在线| 777av视频| 黄色影院在线播放| 久久草av在线| 51精品在线观看| 香蕉成人在线视频| 久久影视三级福利片| 欧美吻胸吃奶大尺度电影| 久久久久久久久久伊人| 精品电影在线| 国产成人av网站| 国产精品久久久久9999| 国产在线观看免费av| 波多野结衣在线观看一区二区三区 | 国产精品日韩欧美一区二区三区| 四虎影院在线免费播放| 黄色在线成人| www.xxxx欧美| 国产jk精品白丝av在线观看 | 欧美日本高清视频在线观看| 亚洲不卡中文字幕无码| 老司机福利在线视频| 久久精品亚洲一区二区三区浴池| 成人av中文| 国产精品毛片一区二区在线看舒淇 | 欧美在线精品一区二区三区| 久久99久久99| 国产精品久久久久91| 日本五十路女优| 欧美大片一区| 久久香蕉频线观| 人妻互换一区二区激情偷拍| 九九久久精品| 日韩电影网在线| 成人做爰www看视频软件| 亚洲a成人v| 欧美日韩一二区| 人人爽人人av| 播放一区二区| 在线观看欧美日本| 亚洲黄色小视频在线观看| 深夜成人影院| 欧美午夜精品久久久久久孕妇| 欧美日韩在线中文| 亚洲十八**毛片| 欧美丝袜一区二区三区| 日本a级片免费观看| 色在线视频观看| 欧美日韩人人澡狠狠躁视频| 免费一级特黄毛片| 日韩欧美一中文字暮专区| 香港成人在线视频| 国产96在线 | 亚洲| 77thz桃花论族在线观看| 五月天一区二区| 亚洲美免无码中文字幕在线 | 亚洲va国产天堂va久久en| 国产黄色激情视频| 国产中文在线播放| 欧美日韩性生活视频| 人妻内射一区二区在线视频| 写真福利精品福利在线观看| 在线精品视频小说1| 欧美日韩中文不卡| 秋霞一区二区| 亚洲电影免费观看高清完整版在线观看 | 婷婷综合激情网| 91麻豆免费看| 亚洲欧美日韩不卡一区二区三区| 欧美日韩xx| 一区二区三区不卡在线观看 | 成人性色生活片| 久久草视频在线看| 999在线视频| 一区二区三区国产| 成人在线看视频| 久久久久伊人| 精品国产3级a| 亚洲av无码一区二区三区人| 日韩电影免费在线观看| 欧美疯狂xxxx大交乱88av| 欧美日韩精品区| 日本不卡一二三区黄网| 亚洲最大成人在线| 日韩欧美亚洲系列| 亚洲欧洲性图库| 99视频在线免费播放| yy6080久久伦理一区二区| 91精品国产综合久久久久久漫画| 制服丝袜第一页在线观看| 日韩成人a**站| 午夜精品蜜臀一区二区三区免费| 无码人妻精品一区二区三区9厂| 久88久久88久久久| 精品视频在线观看| 国产视频在线播放| 欧美日韩一区二区三区 | 视频一区视频二区欧美| 亚洲女人天堂视频| 三级影片在线看| 久久一日本道色综合久久| 国产一区二区香蕉| 午夜影院免费视频| 亚洲乱码精品一二三四区日韩在线 | 八戒八戒神马在线电影| 欧美性xxxxxxx| 亚洲911精品成人18网站| 成人在线一区| 69视频在线免费观看| 国产精品久久久久久久一区二区 | 日韩电影大全网站| 精品欧美一区二区久久| 国产精品夜夜夜爽阿娇| 老鸭窝毛片一区二区三区| av色综合网| 天堂аⅴ在线地址8| 日本韩国一区二区| 久久人妻一区二区| 欧美午夜不卡| 91av免费看| 麻豆视频在线免费观看| 在线视频欧美精品| 中国黄色a级片| 亚洲精品视频啊美女在线直播| 成人在线小视频| 日本视频在线免费观看| 色综合久久久久久久久久久| 91黄色免费视频| 亚洲精品乱码| 国产一区二区三区四区hd| 呦呦在线视频| 日韩一级大片在线| 手机在线免费看毛片| 久久福利视频一区二区| 亚洲日本精品一区| 日韩成人在线电影| 日韩在线免费视频观看| 中文字幕在线观看高清| 国产欧美一区二区精品忘忧草 | 日韩成人亚洲| 亚洲欧洲一区二区三区久久| 国产精品久久久久久人| 久久久影院官网| 成熟老妇女视频| 青青草91久久久久久久久| 国产精品亚洲欧美导航| 91在线观看| 欧美精品免费视频| 青草影院在线观看| 粉嫩aⅴ一区二区三区四区五区| 4444在线观看| 97超碰成人| 91精品国产乱码久久久久久蜜臀 | 中文字幕人妻色偷偷久久| 中文成人综合网| 色综合久久久久| 一级性生活视频| 亚洲91网站| 久久久久久综合网天天| 日本毛片在线观看| 欧美三级免费观看| 久久亚洲AV无码专区成人国产| 日韩高清不卡在线| 波多野结衣三级在线| 日韩一区二区三区色| 91国产精品91| 国产福利在线看| 欧美丰满美乳xxx高潮www| 欧美成人精品一区二区免费看片| 国产不卡视频在线播放| 欧美 日韩 亚洲 一区| 国产乱码精品一区二区三区四区| 国产精品盗摄久久久| 久久国产精品一区| 亚洲精品在线网站| 天天干,天天干| 日韩理论片在线| 午夜视频在线观看国产| 免费人成网站在线观看欧美高清| 9191国产视频| 免费av一区| 成人免费视频在线观看超级碰| 久久青青色综合| 国产亚洲aⅴaaaaaa毛片| 99在线无码精品入口| 欧美午夜激情小视频| 亚洲视频重口味| 91视频在线看| 夜夜夜夜夜夜操| 在线综合视频| 黄色网络在线观看| 希岛爱理av免费一区二区| 成人精品久久久| 日本不卡1234视频| 久久电影一区二区| 青青九九免费视频在线| 日韩视频一区二区| 国产成人a v| 亚洲高清视频中文字幕| 亚洲天堂精品一区| 久久亚区不卡日本| 国产香蕉精品视频| 极品少妇xxxx精品少妇偷拍 | 久久嫩草捆绑紧缚| 91亚洲国产成人精品一区二三| 污视频网址在线观看| 国产欧美一级| 国产一区二区三区在线免费| 成人动漫免费在线观看| 久久久久一区二区| 东京久久高清| 3d精品h动漫啪啪一区二区| 日韩中文在线播放| 日本在线精品视频| 国产美女高潮在线| 欧美国产日韩精品| 中文字幕中文字幕在线十八区 | 麻豆久久一区| 国产欧美精品日韩精品| 欧美黄色三级| 欧美一区二粉嫩精品国产一线天| wwwav在线| 久久精品国产亚洲| 91caoporn在线| 亚洲全黄一级网站| 飘雪影视在线观看免费观看 | 99国产超薄肉色丝袜交足的后果| 欧美aaa视频| 欧美在线视频a| 日韩欧美精品一区二区三区| 性欧美长视频免费观看不卡| 欧美人与禽性xxxxx杂性| 美女av一区二区| 成a人片在线观看| 久久高清视频免费| av黄在线观看| 欧美xxxx做受欧美| 色帝国亚洲欧美在线| 大胆人体色综合| 青春草在线视频| 欧美肥老妇视频| 黄色aa久久| 日韩美女免费观看| 国产精品扒开腿做爽爽爽视频软件| 欧美影院久久久| 日韩欧美一区二区三区在线观看| 国产精品久久久久久久久久新婚| 写真福利精品福利在线观看| 国产精品视频中文字幕91| 亚洲人体在线| 亚洲综合最新在线| 精品国产乱子伦一区二区| 久久波多野结衣| 欧美偷拍综合| 小说区视频区图片区| 亚洲欧美伊人| 国产日韩av网站| 亚洲欧美成人| 国产精品视频分类| 国产一区二区不卡在线| 欧美午夜精品一区二区| 91在线你懂得| wwwww黄色| 亚洲免费伊人电影| 日本最新中文字幕| 91激情在线视频| 国产精品免费无遮挡| 精品对白一区国产伦| 激情小视频在线| 久久成人精品视频| 成人观看网址| 国产精品日韩精品| 一区二区三区自拍视频| 茄子视频成人在线观看 | 精品欧美午夜寂寞影院| 欧美1o一11sex性hdhd| 久久精品播放| 超碰成人免费在线| 日韩国产精品大片| 4438x全国最大成人| 99久久伊人网影院| 国产又粗又猛又爽又黄的视频小说 | 日韩精品久久一区二区三区| 欧美在线观看天堂一区二区三区| 狠狠干 狠狠操| 久久超碰97中文字幕| 国产十八熟妇av成人一区| 国产女同性恋一区二区| 久久精品第一页| 欧美日韩一区国产| 婷婷丁香花五月天| 另类少妇人与禽zozz0性伦| 国产精品迅雷| 国产精品免费一区二区三区| 精品一区三区| 国产日韩av网站| 国产一区二区三区四区五区入口| 内射中出日韩无国产剧情| 亚洲欧美电影院| 国产一级片av| 日韩电影网在线| 羞羞的网站在线观看| 国产精品视频一区二区高潮| 九九热播视频在线精品6| 黄色a级在线观看| 日韩激情视频在线观看| 这里只有精品在线观看视频 | 精品成人18| 污视频在线免费观看一区二区三区| 精品成人国产| 三级黄色片播放| 国产欧美在线观看一区| 日本一区二区网站| 精品国产乱码久久久久久久| 日本视频在线观看| 国产精品入口福利| 国产亚洲精品美女久久久久久久久久| 女人色极品影院| 国产一区亚洲一区| 91传媒免费观看| 欧美三级日本三级少妇99| 国产资源在线观看| 欧美一级大片在线观看| 麻豆视频一区| 可以在线看的av网站| 99在线精品观看| 日韩精品视频免费播放| 欧美成人a视频| 青青草原国产在线| 国产福利久久精品| 韩日精品视频| wwwww在线观看| 亚洲图片一区二区| 囯产精品久久久久久| 欧美激情女人20p| 永久免费精品视频| 99久久免费观看| 不卡的av电影| 91浏览器在线观看| 精品亚洲aⅴ在线观看| 欧美激情网站| 欧美精品亚洲精品| 久久婷婷麻豆| 国产123在线| 欧美日韩免费一区二区三区视频| av电影在线观看| 国产在线观看91精品一区| 久久久国产精品| 欧美日韩理论片| 一区二区三区成人| 深爱激情五月婷婷| 日本国产欧美一区二区三区| 九九免费精品视频在线观看| 在线看的黄色网址| 亚洲天堂2014| 高h调教冰块play男男双性文| 98精品在线视频| 九九久久婷婷| 九九久久久久久| 亚洲成国产人片在线观看| 青梅竹马是消防员在线| 国产精品久久一| 欧美一区网站| 玖玖爱在线精品视频| 91激情在线视频| a天堂中文在线官网在线| 国产伦精品一区二区| 久久久久久久尹人综合网亚洲| ass极品国模人体欣赏| 51精品久久久久久久蜜臀| 超清av在线| 欧美一区二区在线视频观看| 精品一二三四在线| 国产一级特黄视频| 亚洲色图美腿丝袜| 国产一精品一av一免费爽爽| 日本中文字幕网址| 中文字幕在线免费不卡| 免费av一级片| 国产日本欧美视频| 亚洲黄色在线| 永久免费看mv网站入口| 亚洲国产精品久久| 久久精品国产福利| 黄色成人在线看| 中文字幕一区二区三区在线观看| 欧美一区,二区| 91精品久久久久久久久久久久久| 伊人久久婷婷| 色哟哟一一国产精品| 日韩av综合中文字幕| 精品一区二区三区亚洲| www国产黄色| 亚洲一区二区精品视频| 91免费在线| 精品国产区在线| 国产精品99久久久久久久vr| 日韩黄色片网站|