欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁學(xué)堂Java培訓(xùn)之注解與反射原理說明

2019-03-15 14:18:07 1894瀏覽

今天扣丁學(xué)堂Java培訓(xùn)老師給大家分享一篇關(guān)于Java注解與反射原理說明的詳細(xì)介紹,首先注解若想發(fā)揮更大作用,還需借助反射機(jī)制之力。通過反射,可以取得一個(gè)方法上聲明的注解的全部內(nèi)容。



一般有兩種需求:

1、取得方法中全部的注解,通過調(diào)用getAnnotations來實(shí)現(xiàn)。

2、判斷操作是否是指定注解,通過調(diào)用getAnnotation來實(shí)現(xiàn)。

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

源碼導(dǎo)讀——取得方法中全部的注解

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

源碼導(dǎo)讀——判斷操作是否是指定注解

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

以上就是關(guān)于扣丁學(xué)堂Java培訓(xùn)之注解與反射原理說明的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,

想要了解更多關(guān)于Java開發(fā)方面內(nèi)容的小伙伴,請關(guān)注扣丁學(xué)堂Java培訓(xùn)官網(wǎng)、微信等平臺,扣丁學(xué)堂IT職業(yè)在線學(xué)習(xí)教育平有專業(yè)的Java講師為您指導(dǎo),此外扣丁學(xué)堂老師精心推出的Java視頻教程定能讓你快速掌握J(rèn)ava從入門到精通開發(fā)實(shí)戰(zhàn)技能??鄱W(xué)堂Java技術(shù)交流群:670348138。


扣丁學(xué)堂微信公眾號


【關(guān)注微信公眾號獲取更多學(xué)習(xí)資料】



查看更多關(guān)于“Java開發(fā)資訊”的相關(guān)文章>>

標(biāo)簽: Java培訓(xùn) Java視頻教程 Java多線程 Java面試題 Java學(xué)習(xí)視頻 Java開發(fā)

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費(fèi)咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號中關(guān)村智誠科創(chuàng)大廈4層
京ICP備2021002079號-2   Copyright ? 2017 - 2022
返回頂部 返回頂部