注解是一系列元数据,它利用元数据来解释、说明程序代码(即被注解的对象)。注解的作用包括:

1、提供信息给编译器,编译器可以利用注解来探测错误和警告信息。

2、软件工具可以利用注解信息来生成代码、HTML文档或者做其他相应处理。

3、运行时的处理,某些注解可以在程序运行时接受代码的提取。

注解通过关键字@interface进行定义,如:

public @interface TestAnnotation {}

元注解就是加到注解上的注解,它的目的是解释、说明其他普通注解。元注解有@Retention、@Documented、@Target、@Inherited、@Repeatable共5种。

元注解@Retention应用到一个注解时,说明该注解的存活时间。它的取值包括RetentionPolicy.SOURCE、RetentionPolicy.CLASS、RetentionPolicy.RUNTIME。RetentionPolicy.SOURCE表明注解只在源码阶段保留,在编译器进行编译时被丢弃;RetentionPolicy.CLASS表明注解被保留到编译进行的时候,而不会被加载到JVM中;RetentionPolicy.RUNTIME表明注解可以保留到程序运行的时候,它会被加载进入JVM中,在程序运行时可以获取到它们。

元注解@Documented表示注解内容会被Javadoc工具提取成文档,文档内容会因为注解内容的不同而不同。

元注解@Target表示注解用于什么地方,如类型、方法和域等。元注解@Target的取值包括ElementType.FIELD、ElementType.METHOD、ElementType.PARAMETER、ElementType.CONSTRUCTOR、ElementType.LOCAL_VARIABLE、ElementType.TYPE、ElementType.ANNOTATION_TYPE、ElementType.PACKAGE。其中,ElementType.FIELD表示对字段、枚举常量的注解,ElementType.METHOD表示对方法的注解,ElementType.PARAMETER表示对方法参数的注解,ElementType.CONSTRUCTOR表示对构造函数的注解,ElementType.LOCAL_VARIABLE表示对局部变量的注解,ElementType.ANNOTATION_TYPE表示对注解类型的注解,ElementType.PACKAGE表示对包的注解,ElementType.TYPE表示对接口、类、枚举、注解等任意类型的注解。

被元注解@Inherited注解过的注解作用于父类后,子类会自动继承父类的注解。

元注解@Repeatable是在Java1.8中引入的注解,被注解后的普通注解可以被重复多次作用于一个类并传入不同的参数,代码示例如下:

@interface Persons {

Person[]value();

}

@Repeatable(Persons.class)

@interface Person {

String role default  "";

}

@Person(role="artist")

@Person(role="coder")

@Person(role="PM")

public class SuperMan {

}

java元注解_Java的元注解相关推荐

  1. java中为什么要用注解_java中的注解,真的很重要,你理解了嘛?

    这篇文章开始讲解java中的注解,在平时的开发当中我相信你或多或少的接触过注解.比如你可能都见过@override,它代表的就是一个注解.但是,为了更加清晰的去介绍注解,我还是先给出一个例子,让你能够 ...

  2. android xml java混合编程_Java学习中注解与多线程,网络编程与XML技术

    本部分内容主要有集合框架及泛型,实用类,输入和输出处理,注解与多线程,网络编程与XML技术.初次学习这部分会感觉很难,主要是概念难于理解,最好是多看看例子,多练习.下面是个人的总结 拉勾IT课小编为大 ...

  3. java AST 表达式_java 编译时注解-AST 抽象语法树简介

    AST 语法入门 以前使用 Lombok 一直觉得是一个很棒的设计,可以同时兼顾注解的遍历和运行的性能. 运行时注解一直因为性能问题被人诟病. 自己尝试写过一些框架,但是耗费了比较多的精力,因为 AS ...

  4. @value注解_Java系列之注解

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

  5. Java获取元注解_Java 元注解

    一.介绍 元注解的作用就是负责注解其他注解,Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明.Java5.0定义的元注解: @Ta ...

  6. java path 注解_Java内置系统注解和元注解

    第一节:注解(Annotation)的作用 Annotation(注解)是JDK5.0及以后版本引入的.它的作用是修饰程序元素.什么是程序元素呢?例如:包.类.构造方法.方法.成员变量等. 注解,就是 ...

  7. 注解和反射详细笔记。自定义注解,元注解,内置注解。反射机制,Java Reflection,Java内存分析,反射操作注解,java.lang.reflect.Method,Class

    文章目录 注解 什么是注解 内置注解 元注解 自定义注解 反射机制 静态语言 vs 静态语言 Java Reflection 反射相关的主要API Class类 Java内存分析 创建运行时类的对象 ...

  8. Java注解篇(一)四大元注解@Target@Retention@Documented注解

    1.@Target目标注解,意思带注解的适用于哪些范围,有以下参数可供使用 @Target(ElementType.METHOD) 1.CONSTRUCTOR:用于描述构造器 2.FIELD:用于描述 ...

  9. java 注解开发_Java中的注解到底是如何工作的?

    作者:人晓 www.importnew.com/10294.html 自Java5.0版本引入注解之后,它就成为了Java平台中非常重要的一部分.开发过程中,我们也时常在应用代码中会看到诸如@Over ...

最新文章

  1. net start mysql 提示:服务名无效 请键入NET HELPING 2185以获得更多的帮助的问题
  2. 基于变分自动编码器(Variational Autoencoders)疾病预测系统实战:(Keras实现并可视化训练和验证误差、最后给出topK准确率和召回率)
  3. CCAI2018演讲实录 | 蒲慕明:脑科学与类脑机器学习
  4. 转 Cocos2d-x3.0模版容器详解之三:cocos2d::Value
  5. java-commons-HttpClient超时设置setConnectionTimeout和setSoTimeout
  6. 【JAVA基础篇】集合框架
  7. 互联网晚报 | 11月27日 星期六 | 电子烟等新型烟草制品参照卷烟监管;有赞上线“有赞酒店”;法拉第未来收到退市通知...
  8. 违背常识、颠覆认知,终于有人把薛定谔的猫讲明白了
  9. 墨墨背单词mysql_GitHub - flymysql/WeChat-applets: 微信小程序小鸡单词
  10. excel文件损坏修复绝招_ps文件损坏有修复的软件!超强开挂辅助神器
  11. 用资源管理器打开ftp站点跳转浏览器解决方法
  12. Typora使用技巧
  13. 邮箱密码忘了怎么找回
  14. 数据存取演变史、数据库软件应用史、数据库的本质、分类、 MySQL数据库、系统服务制作、基本的SQL语句
  15. 专访Testin云测总裁徐琨:十年浓墨重彩,笃行数字化转型
  16. 一个可直接使用的轻量级博客开源系统
  17. 计算机械结构变形,机械结构温度变化的位移计算.ppt
  18. Egg Config
  19. 一、简单的http抓包(微信公众网页登录模拟)
  20. 简帛企业云智库介绍(企业知识管理系统)

热门文章

  1. DeepMind 用 GAN 虚构视频真假难辨【智能行业热点】(2019.7.22)
  2. Databricks文档05----使用 Azure Databricks 连接SQL Server查询数据
  3. 空值用前值填充_Excel数据填充,原来这么简单
  4. 部分用户称苹果iPad Air 5产品质量下降 外壳有异响
  5. 中兴通讯推出全球首款Wi-Fi 7标准5G CPE
  6. 海底捞发布公告 预计去年最高亏损45亿
  7. iPhone 14 Pro系列传出好消息,有望实现8GB内存自由
  8. 中教云教师备课云平台获北京市新技术新产品(服务)认定
  9. 天猫双11菜鸟物流绿色减碳1.8万吨 120万人参与快递箱回收
  10. 中芯国际科创板上市发行价定为27.46元/股,募资或超500亿元