成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

java代碼獲取注解內(nèi)容 java獲取方法的注解

java獲取注解的值

很多朋友都想知道java怎么獲取注解的值?下面就一起來了解一下吧~

成都創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站設(shè)計、網(wǎng)站制作與策劃設(shè)計,無錫網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:無錫等地區(qū)。無錫做網(wǎng)站價格咨詢:18982081108

1、定義一個注解,用于給全局變量field字段賦值

package?com.haha.study.annotation.value; import?java.lang.annotation.Documented; import?java.lang.annotation.ElementType; import?java.lang.annotation.Retention; import?java.lang.annotation.RetentionPolicy; import?java.lang.annotation.Target; /** *?description:?定義一個注解,用于給?全局變量?field?字段?賦值,并使用反射取值。?

*?特別提醒:?@Rentention(RetentionPolicy.RUNTIME)?時,注解才會被jvm加載,才能使用反射獲取。 *?@version?v1.0 *?@author?w *?@date?2018年8月1日下午2:37:40 */ @Documented @Retention(RetentionPolicy.RUNTIME) @Target(value=ElementType.FIELD) public?@interface?Fields?{ int?sort()?default?0?; String?value()?; }

2、創(chuàng)建一個普通的類,使用 @ConsAnnotation、@Fields 注解

package?com.haha.study.annotation.value; /** *?description:?創(chuàng)建一個普通的類,使用?@ConsAnnotation、@Fields?注解。 *?@version?v1.0 *?@author?w *?@date?2018年8月1日下午2:50:23 */ @ConsAnnotation(request?=?{?"hello","world","annotation!"?}) public?class?User?{ @Fields("中華人民共和國") private?String?userName; public?String?getUserName()?{ return?userName; } public?void?setUserName(String?userName)?{ this.userName?=?userName; } }

3、針對 com.haha.study.annotation.value.User 類使用注解的測試

package?com.haha.study.annotation.value; import?java.lang.reflect.Field; import?java.util.Arrays; /** *?description:?針對?com.haha.study.annotation.value.User?類使用注解的測試 *?@version?v1.0 *?@author?w *?@date?2018年8月1日下午2:37:13 */ public?class?ValueTest?{ public?static?void?main(String[]?args)?throws?Exception?{ User?user?=?new?User(); //?1、?獲取?User類上的注解?@ConsAnnotation ConsAnnotation?anno?=?user.getClass().getAnnotation(ConsAnnotation.class); String[]?arr?=?anno.request(); System.out.println(Arrays.toString(arr));?//?[hello,?world,?annotation!] //?2、?獲取User類中?private?String?userName;?變量上的注解?@Field Field?f?=?user.getClass().getDeclaredField("userName"); Fields?anno2?=?f.getAnnotation(Fields.class); user.setUserName(anno2.value()); System.out.println(user.getUserName());?//?中華人民共和國 } }

Java 注解的讀取注解信息的方法

屬于重點,在系統(tǒng)中用到注解權(quán)限時非常有用,可以精確控制權(quán)限的粒度

注意:要想使用反射去讀取注解,必須將Retention的值選為Runtime Java代碼import?java.lang.annotation.Annotation;import?java.lang.reflect.Method;//讀取注解信息public?class?ReadAnnotationInfoTest?{????public?static?void?main(String[]?args)?throws?Exception?{????????//?測試AnnotationTest類,得到此類的類對象????????Class?c?=?Class.forName(com.iwtxokhtd.annotation.AnnotationTest);????????//?獲取該類所有聲明的方法????????Method[]?methods?=?c.getDeclaredMethods();????????//?聲明注解集合????????Annotation[]?annotations;????????//?遍歷所有的方法得到各方法上面的注解信息????????for?(Method?method?:?methods)?{????????????//?獲取每個方法上面所聲明的所有注解信息????????????annotations?=?method.getDeclaredAnnotations();????????????//?再遍歷所有的注解,打印其基本信息????????????System.out.println(method.getName());????????????for?(Annotation?an?:?annotations)?{????????????????System.out.println(方法名為:?+?method.getName()?+?其上面的注解為:?+?an.annotationType().getSimpleName());????????????????Method[]?meths?=?an.annotationType().getDeclaredMethods();????????????????//?遍歷每個注解的所有變量????????????????for?(Method?meth?:?meths)?{????????????????????System.out.println(注解的變量名為:?+?meth.getName());????????????????}????????????}????????}????}}

java獲取當(dāng)前類上的注解內(nèi)容

@Retention(RetentionPolicy.RUNTIME) // 注解會在class字節(jié)碼文件中存在,在運行時可以通過反射獲取到

@Target({ElementType.FIELD,ElementType.METHOD})//定義注解的作用目標(biāo)**作用范圍字段、枚舉的常量/方法

@Documented//說明該注解將被包含在javadoc中

public @interface FieldMeta {

/**

* 是否為序列號

* @return

*/

boolean id() default false;

/**

* 字段名稱

* @return

*/

String name() default "";

/**

* 是否可編輯

* @return

*/

boolean editable() default true;

/**

名稱欄目:java代碼獲取注解內(nèi)容 java獲取方法的注解
標(biāo)題路徑:http://jinyejixie.com/article22/docpscc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機、定制網(wǎng)站網(wǎng)站維護(hù)、面包屑導(dǎo)航、GoogleChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
正镶白旗| 巴林右旗| 城步| 察哈| 五台县| 辽中县| 鄂托克前旗| 依兰县| 民县| 仲巴县| 郯城县| 奉节县| 龙泉市| 哈密市| 莆田市| 泸州市| 芮城县| 安庆市| 怀化市| 遵化市| 商城县| 灵川县| 泾阳县| 高台县| 通道| 华池县| 台湾省| 化隆| 上饶县| 孙吴县| 闽侯县| 河津市| 兰州市| 阳江市| 长岛县| 郎溪县| 海宁市| 扎鲁特旗| 辽宁省| 琼结县| 崇义县|