什么叫做元注解??   ==》用于注解【注释】的注解就叫做元注解

注解叫做:元数据,标签,注释           元注解[数据]--->注解--->标记代码

1.@Target :用于描述注解的使用范围,也就是说使用了@Target去定义一个注解,那么可以决定定义好的注解能用在什么地方

2.@Retention:用于描述注解的生命周期,也就是说这个注解在什么范围内有效,注解的生命周期和三个阶段有关:源代码阶段、CLASS文件中有效、运行时有效,故其取值也就三个值,分别代表着三个阶段

3.@Documented:表示该注解是否可以生成到 API文档中。在该注解使用后,如果导出API文档,会将该注解相关的信息可以被例如javadoc此类的工具文档化。 注意:Documented是一个标记注解,没有成员。

4.@Inherited:使用@Inherited定义的注解具备继承性

假设一个注解在定义时,使用了@Inherited,然后该注解在一个类上使用,如果这个类有子类,那么通过反射我们可以从类的子类上获取到同样的注解、

/**
* Java四大元注解:
* 1.@Target :用于描述注解的使用范围,也就是说使用了@Target去定义一个注解,那么可以决定定义好的注解能用在什么地方
* 内部值:ElementType[] value()数组, value值类型 ElementType枚举类型
* 元注解中的枚举值决定了,一个注解可以标记的范围
* TYPE : 类型上面 用于描述类、接口(包括注解类型) 或enum声明
* FIELD : 用于描述字段
* METHOD :方法
* PARAMETER : 参数 【参数名】
* CONSTRUCTOR : 构造方法
* LOCAL_VARIABLE : 局部变量
* ANNOTATION_TYPE : 可以打在注解上面
* PACKAGE :可以打在包上面
* TYPE_PARAMETER : 参数类型【形式参数类型】
* TYPE_USE : 任何位置都可以
* 2.@Retention:用于描述一个注解存在的生命周期【源码,字节码文件,运行时】
* 内部值:RetentionPolicy value();非数组,意味着只能一个值:
* 值类型:枚举值RetentionPolicy:几个值决定了几个状态:如下几个值
* SOURCE :表示一个注解可以存在于源码中==>java的源码中
* CLASS :表示 一个注解可以在源码中,并且可以在字节码文件中
* RUNTIME :表示 一个注解可以在源码、字节码、及运行时期该注解都会存在
* 3.@Document :表示该注解是否可以生成到 API文档中 ==》即生成API文档的时 检验
* 4.@Inherited :表示一个【注解】能够被继承
* 不是说注解与注解之间能否相互继承
* 而是说:一个类A被注解了,那么另外一个类B,继承了A类
* B类能够继承到A类中,的注解 (即被@Inherited注解过的注解)
* @author 郑清

——————————————————————————————————————————————

@Documented 注解表明这个注解应该被 javadoc工具记录. 默认情况下,javadoc是不包括注解的. 但如果声明注解时指定了 @Documented,则它会被 javadoc 之类的工具处理, 所以注解类型信息也会被包括在生成的文档中,是一个标记注解,没有成员。

源码

使用方法

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Column {
public String name() default "fieldName";
public String setFuncName() default "setField";
public String getFuncName() default "getField";
public boolean defaultDBValue() default false;
}

—————————

Java之四大元注解@Target、@Retention、@Documented、@Inherited的更多相关文章

  1. JAVA自定义注释(Target,Retention,Documented,Inherit)

    java自定义注解 Java注解是附加在代码中的一些元信息,用于一些工具在编译.运行时进行解析和使用,起到说明.配置的功能.注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用.包含在 java.l ...

  2. Java系列之注解

    Java系列之注解 Java 注解(Annotation)又称之为 Java 标注.元数据,是 Java 1.5 之后加入的一种特殊语法,通过注解可以标注 Java 中的类.方法.属性.参数.包等,可 ...

  3. Java复习总结——注解

    注解 概念及作用 概念 注解即元数据,就是源代码的元数据 注解在代码中添加信息提供了一种形式化的方法,可以在后续中更方便的 使用这些数据 Annotation是一种应用于类.方法.参数.变量.构造器及 ...

  4. 【转】JAVA反射与注解

    转载自:https://www.daidingkang.cc/2017/07/18/java-reflection-annotations/ 前言 现在在我们构建自己或公司的项目中,或多或少都会依赖几 ...

  5. Java学习:注解,反射,动态编译

    狂神声明 : 文章均为自己的学习笔记 , 转载一定注明出处 ; 编辑不易 , 防君子不防小人~共勉 ! Java学习:注解,反射,动态编译 Annotation 注解  什么是注解 ? Annotat ...

  6. Java 内置注解简单理解

    感谢原文作者:yejg1212 原文链接 https://www.cnblogs.com/yejg1212/p/3187362.html https://www.cnblogs.com/yejg121 ...

  7. Java注解之Retention、Documented、Target、Inherited介绍

    先看代码,后面一个个来解析: @Retention(RetentionPolicy.RUNTIME) @Target(value = {ElementType.METHOD, ElementType. ...

  8. 【java】细说 JAVA中 标注 注解(annotation)

    Java注解是附加在代码中的一些元信息,用于一些工具在编译.运行时进行解析和使用,起到说明.配置的功能.注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用 下面我们来详细说说这个注解,到底是怎么一 ...

  9. Java学习之注解Annotation实现原理

    前言: 最近学习了EventBus.BufferKinfe.GreenDao.Retrofit 等优秀开源框架,它们新版本无一另外的都使用到了注解的方式,我们使用在使用的时候也尝到不少好处,基于这种想 ...

随机推荐

  1. “GIS DICTIONARY A-Z” 查询页面开发(2)——INSERT INTO数据库

    今日工作:数据库连接.数据写入 一.数据库连接:使用了pymysql库 from G2_dataClean import defList import pymysql db = pymysql.con ...

  2. VSCode在Ubuntu下快捷键和Windows下不一致的解决办法

    Windows下切换前一次和后一次光标位置,用的快捷键是Alt+<-和Alt+->.很遗憾,Ubuntu下并不是这个快捷键.不清楚为什么VSCode不提供统一的快捷键,但对于我来说,我很想 ...

  3. javascript之BOM对象(一window对象)

    javascript包含三个部分,ECMAScript,BOM和DOM.ECMAScript是javascript的核心,包含javascript的基础语法.在Web中使用javascript,BOM ...

  4. Nginx 核心配置-自定义错误页面

    Nginx 核心配置-自定义错误页面 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 生产环境中错误页面一般都是UI或开发工程师提供的,他们已经在软件中定义好了,我们这里就简单写个h ...

  5. python实现生产者消费者模型

    生产者消费之模型就是,比如一个包子铺,中的顾客吃包子,和厨师做包子,不可能是将包子一块做出来,在给顾客吃,但是单线程只能这麽做,所以用多线程来执行,厨师一边做包子,顾客一边吃包子,当顾客少时,厨师做的 ...

  6. 201871010106-丁宣元 《面向对象程序设计(java)》第二周学习总结

    丁宣元 <面向对象程序设计(java)>第二周学习总结 正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在 ...

  7. Android 开发基础入门篇: 生成带有签名的apk安装包

    说明: 软件默认生成的安装包没有签名,现在手机安装APP的时候要求,安装包必须有签名才可以 默认生成的APK位置 现在生成带有签名的APK 我一般放到当前工程根目录,然后文件名字 key 有些时候需要 ...

  8. ESA2GJK1DH1K基础篇: 关于各大物联网平台的MQTT通信

    前言 这节稍微唠叨点 其实我很长时间都没有出怎么连接现成的物联网平台的教程, 一直写的是教给大家自己搭建服务器,主要原因是因为我感觉连接现有的学不到东西. 现在出这种教程,是因为发现确实很多人喜欢用. ...

  9. vue : 无法加载文件 C:\Users\xxx\AppData\Roaming\npm\vue.ps1

    最近因为电脑太卡,小颖把电脑重装了,重装后再执行 npm install -g @vue/cli 时可能是网络问题,一直不能成功,小颖就把npm指向了淘宝镜像: npm install -g cnpm ...

  10. ASP.NET Core 简介

    .NET Core 是 .NET Framework 的新一代版本,是微软开发的第一个具有跨平台 ( Windows.Mac OSX .Linux ) 能力的应用程序开发框 ASP.NET Core ...