当前位置: 首页 / 技术干货 / 正文
好程序员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://www.goodprogrammer.org/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号