国产精品色哟哟_男男激情3p互攻_色偷偷影院_和女同学厕所做了四次

當前位置: 首頁 / 技術干貨 / 正文
好程序員Java培訓分享注解與反射原理說明

2020-10-21

Java培訓

  好程序員Java培訓分享注解與反射原理說明,首先注解若想發揮更大作用,還需借助反射機制之力。通過反射,可以取得一個方法上聲明的注解的全部內容。

好程序員

 

  一般有兩種需求:

  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的父類ExecutablegetDeclaredAnnotations實現全部注解信息的獲取

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));

  }  

  ...

}

 

以上就是關于好程序員Java培訓之注解與反射原理說明的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值。

好程序員Java培訓官網:http://bloohash.com/javaEE_class.shtml

好程序員公眾號

  • · 剖析行業發展趨勢
  • · 匯聚企業項目源碼

好程序員開班動態

More+
  • HTML5大前端 <高端班>

    開班時間:2021-04-12(深圳)

    開班盛況

    開班時間:2021-05-17(北京)

    開班盛況
  • 大數據+人工智能 <高端班>

    開班時間:2021-03-22(杭州)

    開班盛況

    開班時間:2021-04-26(北京)

    開班盛況
  • JavaEE分布式開發 <高端班>

    開班時間:2021-05-10(北京)

    開班盛況

    開班時間:2021-02-22(北京)

    開班盛況
  • Python人工智能+數據分析 <高端班>

    開班時間:2021-07-12(北京)

    預約報名

    開班時間:2020-09-21(上海)

    開班盛況
  • 云計算開發 <高端班>

    開班時間:2021-07-12(北京)

    預約報名

    開班時間:2019-07-22(北京)

    開班盛況
IT培訓IT培訓
在線咨詢
IT培訓IT培訓
試聽
IT培訓IT培訓
入學教程
IT培訓IT培訓
立即報名
IT培訓

Copyright 2011-2023 北京千鋒互聯科技有限公司 .All Right 京ICP備12003911號-5 京公網安備 11010802035720號