解析注解、继承注解

解析注解

概念: 通过反射获取类、函数或成员上的运行时注解信息,从而实现动态控制程序运行的逻辑

 

首先定义两个注解,一个方法注解,一个类注解

 

解析步骤

1,使用类加载器加载要解析的类

2,找到类上面的注解。这句代码的意思是,判断这个类上是否有一个Description这样的一个注解,返回值是一个boolean值

3,拿到注解实例,打印输出

 

获取方法上的注解:

首先获取类里面的所有方法,返回值是一个Method数组,然后遍历数组获取注解

 

获取方法注解的另一种方法,同样是先获取类里面的方法数组,然后遍历类里面的注解,获取Annotation数组,遍历转为Description输出

同样获取到了方法注解

 

注意!!!

以上都建立在@Retention(RetentionPolicy.RUNTIME)时才能获取到方法和类上的注解

 

因为所有的注解直在源码级别存在,编译为.class 文件时注解已经不存在

运行时环境只能获取到运行时的注解,也就是RUNTIME

 

 

继承注解@Inherited

定义一个Person类

 

Child继承Person

 

输出:

说明:继承注解只会继承类上面的注解,不会继承方法上面的注解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值