国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

Java注解與反射原理說明

2024-07-14 08:43:32
字體:
來源:轉載
供稿:網友

一 點睛

注解若想發揮更大作用,還需借助反射機制之力。通過反射,可以取得一個方法上聲明的注解的全部內容。

一般有兩種需求:

1 取得方法中全部的注解,通過調用getAnnotations來實現。

2 判斷操作是否是指定注解,通過調用getAnnotation來實現。

下面從源碼角度來說明怎樣獲取這些注解信息。

二 源碼導讀——取得方法中全部的注解

public class AccessibleObject implements AnnotatedElement {  ...  //取得全部Annotation  public Annotation[] getAnnotations() {    return getDeclaredAnnotations();  }    ...}public final class Method extends Executable {  ...  public Annotation[] getDeclaredAnnotations() {    //針對Method類,需要調用父類的getDeclaredAnnotations方法    return super.getDeclaredAnnotations();  }    ...}//Method的父類Executable的getDeclaredAnnotations實現全部注解信息的獲取public abstract class Executable extends AccessibleObject  implements Member, GenericDeclaration {  ...  public Annotation[] getDeclaredAnnotations() {    return AnnotationParser.toArray(declaredAnnotations());  }    ...}

三 源碼導讀——判斷操作是否是指定注解

public final class Method extends Executable {  ...  ////取得指定Annotation  public <T extends Annotation> T getAnnotation(Class<T> annotationClass) {    return super.getAnnotation(annotationClass);  }  ...}public abstract class Executable extends AccessibleObject  implements Member, GenericDeclaration {  ...  public <T extends Annotation> T getAnnotation(Class<T> annotationClass) {    Objects.requireNonNull(annotationClass);    //獲得指定注解類的信息    return annotationClass.cast(declaredAnnotations().get(annotationClass));  }    ...}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昭通市| 灵丘县| 隆昌县| 小金县| 镇平县| 永平县| 丰原市| 五河县| 崇明县| 富平县| 仙游县| 南开区| 东莞市| 布尔津县| 应用必备| 湘潭市| 阳东县| 武宁县| 监利县| 宽甸| 原平市| 乌鲁木齐市| 鹤岗市| 忻州市| 株洲市| 乌拉特后旗| 阳泉市| 鹤壁市| 石屏县| 珠海市| 塔河县| 阳江市| 志丹县| 绥阳县| 托克逊县| 天祝| 九台市| 双辽市| 大安市| 锡林郭勒盟| 余庆县|