0
点赞
收藏
分享

微信扫一扫

不会还有人不知道Java自定义注解和四种元注解是什么吧,三郎带你来瞧瞧

黎轩的闲暇时光 2022-01-10 阅读 63

目录

自定义注解:

使用案例代码截图

四种元注解:

@Target详解

@Retention详解

@Document详解

@Inherited详解


自定义注解:

        右键new class 创建一个Annotation的文件,用Java元注解标明即定义成功,如何标明接着往下看

package com.example.demo.annotation;

import java.lang.annotation.*;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ZyjRunningLog {

}

        图中的@Target用的类型是ElementType.METHOD,应用与方法之上。如果需要放在类上,就是ElementType.TYPE,按照对应的类型放在对应的地方,具体按照自己的实际情况来配置类型。往下看元注解里面有每一种具体类型的配置。

        图中的@Retention用的类型是RetentionPolicy.RUNTIME,代表的是由JVM 加载,包含在类文件中,在运行时可以被获取到。往下看元注解里面有每一种具体类型的配置。

使用案例代码截图

四种元注解:

        java为注解开发特准备的注解。

@Target详解

说明了注解所修饰的对象范围

Target类型

描述

ElementType.TYPE

应用于类、接口(包括注解类型)、枚举

ElementType.FIELD

应用于属性(包括枚举中的常量)

ElementType.METHOD

应用于方法

ElementType.PARAMETER

应用于方法的形参

ElementType.CONSTRUCTOR

应用于构造函数

ElementType.LOCAL_VARIABLE

应用于局部变量

ElementType.ANNOTATION_TYPE

应用于注解类型

ElementType.PACKAGE

应用于包

ElementType.TYPE_PARAMETER

1.8版本新增,应用于类型变量)

ElementType.TYPE_USE

1.8版本新增,应用于任何使用类型的语句中(例如声明语句、泛型和强制转换语句中的类型)

@Retention详解

   表明该注解的生命周期

生命周期类型

描述

RetentionPolicy.SOURCE

编译时被丢弃,不包含在类文件中

RetentionPolicy.CLASS

JVM加载时被丢弃,包含在类文件中,默认值

RetentionPolicy.RUNTIME

由JVM 加载,包含在类文件中,在运行时可以被获取到

@Document详解

   表明该注解标记的元素可以被Javadoc 或类似的工具文档化,这个东西没有什么实际应用,了解即可

@Inherited详解

   允许子类继承父类中的注解。即拥有此注解的元素其子类可以继承父类的注解。

举报

相关推荐

0 条评论