当前位置:   article > 正文

java框架学习——注解/元注解概述及使用案例

java框架学习——注解/元注解概述及使用案例

前言:

整理下学习笔记,打好基础,daydayup!!!

注解 

注解(Annotation)是java代码里的特殊标记。作用为:让其他程序根据注解信息来决定怎么执行该程序,如:@Override,@Test等。同时可以根据自己的需求自定义注解

 注解的原理

注解本质是一个接口,java中所有注解都是继承了Annotation接口。

自定义注解

自己定义注解

定义格式: 

  1. public @interface 注释名称{
  2. public 属性类型 属性名() default 默认值;
  3. }

例:

  1. public @interface MyTest1 {
  2. String value();
  3. int no() default 23;
  4. }

:如果注解中只有一个value属性,使用注解时,value名称可以不写

示例如下

 注:@注解(...):其实就是一个实现类对象,实现了该注解以及Annotation接口。

元注解

修饰注解的注解称为元注解

Target

作用:声明被修饰的注解能在哪些位置使用

例:

@Target(ElementType.TYPE)//类,接口
TYPE类,接口
FIELD成员变量
METHOD成员方法
PARAMETER方法参数
CONSTRUCTOR构造器
LOCAL_VARIABLE局部变量

Retention

作用:声明注解的保留周期

 例:

@Retention(RetentionPolicy.RUNTIME)//一直保留到运行阶段
SOURCE只作用在源码阶段,字节码文中不存在
CLASS保留到字节码文件阶段,运行阶段不存在
RUNTIME一直保留到运行阶段

注解的解析 

判断类上,方法上,成员变量上是否存在注解,并把注解里的内容解析出来

 和反射分析的用法差不多,有需要的可以看这里

java框架学习——反射概述及简易版框架搭建

解析注解的常用方法如下:

方法说明
public Annotation[ ] getDeclaredAnnotations()获取当前对象上的注解
public T getDeclaredAnnotation(Class<T> annotationClass)获取指定的注解对象
public boolean isAnnotationPresent(Class<Annotation> annotationClass)判断当前对象上是否存在某个注解

示例如下:

 

 案例:

需求:定义若干个方法,若是方法加了MyTest注解,那么触发该方法执行;没有MyTest注解的方法不执行

思路:1,定义一个自定义注解MyTest,使其注解方法,并使其一直存在;2,定义若干个方法,并在部分方法上加上@MyTest修饰,部分方法则不做处理;3,对方法进行注解解析,使带了注解的方法执行方法。

操作如下

整理结束,撒花!!!! 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/359605
推荐阅读
相关标签
  

闽ICP备14008679号