Java注解其实是代码里的特殊标记,使用其他工具可以对其进行处理。注解是一种元数据,起到了描述、配置的作用,生成文档,所有的注解都隐式地扩展自java.lang.annotation.Annotation。注解可能使用注解来自动生成附属文件,如部署描述符和Bean信息类,还可以用于自动生成测试、日志、事务语义等代码。可以注解方法、类、成员、局部变量等。

注解语法

注解是由注解接口来定义的,注解的定义很像接口的定义,与其他Java接口一样,注解也将会编译成class文件.在注解中,一般都会包含一些元素以表示某些值,注解的元素看起来就像接口中的方法,可以为注解元素指定一些值。

modifiers @interface AnnotationName
{
elementDeclaration1;
elementDeclaration2;
}

举例来说

public @interface Message
{
String sendTo() default "[none]";
int level()=0;
}

每个注解都有下面的格式

@AnnotationName(elementName1=value1,elementName2=value2)

举例来说

@Message(sendTo="Jack",level=5)

注解元素的类型

  • 基本类型
  • String
  • Class
  • enum类型
  • 注解类型
  • 以上类型的数组

注解分类

根据注解参数的个数可以分为:

  • 标记注解

    没有元素的注解成为标记注解
  • 单值注解
  • 完整注解

根据注解使用用途和方法可以分为:

  • 内置系统注解
  • 元注解
  • 自定义注解

注解举例

java.lang、java.lang.annotation和javax.annotation包中定义了很多的注解接口,其中四种是元注解,还有三种标准注解,其中有用于编译的注解

名称 说明
@Override 检查是否覆盖了来自超类的方法
@Deprecated 抑制过时的项的警告
@SuppressWarning 抑制编译器某种特殊类型的警告
@Generated 目的是代码生成工具使用

有用于资源管理的注解

名称 说明
@PostConstrut和@PreDestory 用于控制对象生命周期的环境中,标记了这些注解的方法应该在对象被构建之后,或者在对象移除之前调用
@Resource 用于资源注入

元注解是用于注解其他注解的注解

名称 说明
@Retention 定义了该Annotation被保留的时间长短
@Target 说明了Annotation所修饰的范围、可用于package、type、类型成员、方法参数和本地变量
@Documented 用于描述其他类型的annotation应该作为被标注的程序成员的公共API,可以被javadoc此类的工具文档化
@Inherited 阐述了某个被标注的类型是被继承的

Java注解的更多相关文章

  1. 19.Java 注解

    19.Java注解 1.Java内置注解----注解代码 @Deprecated                                    //不推荐使用的过时方法 @Deprecated ...

  2. Java注解入门

    注解的分类   按运行机制分:   源码注解:只在源码中存在,编译后不存在 编译时注解:源码和编译后的class文件都存在(如@Override,@Deprecated,@SuppressWarnin ...

  3. java注解(Annotation)解析

    注解(Annotation)在java中应用非常广泛.它既能帮助我们在编码中减少错误,(比如最常见的Override注解),还可以帮助我们减少各种xml文件的配置,比如定义AOP切面用@AspectJ ...

  4. JAVA 注解的几大作用及使用方法详解

    JAVA 注解的几大作用及使用方法详解 (2013-01-22 15:13:04) 转载▼ 标签: java 注解 杂谈 分类: Java java 注解,从名字上看是注释,解释.但功能却不仅仅是注释 ...

  5. attilax.java 注解的本质and 使用最佳实践(3)O7

    attilax.java 注解的本质and 使用最佳实践(3)O7 1. 定义pojo 1 2. 建立注解By eclipse tps 1 3. 注解参数的可支持数据类型: 2 4. 注解处理器 2 ...

  6. paip.java 注解的详细使用代码

    paip.java 注解的详细使用代码 作者Attilax 艾龙,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/att ...

  7. JAVA 注解的几大作用及使用方法详解【转】

    java 注解,从名字上看是注释,解释.但功能却不仅仅是注释那么简单.注解(Annotation) 为我们在代码中添加信息提供了一种形式化的方法,是我们可以在稍后 某个时刻方便地使用这些数据(通过 解 ...

  8. 框架基础——全面解析Java注解

    为什么学习注解? 学习注解有什么好处? 学完能做什么? 答:1. 能够读懂别人写的代码,特别是框架相关的代码: 2. 让编程更加简洁,代码更加清晰: 3. 让别人高看一眼. spring.mybati ...

  9. Java注解配置

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

随机推荐

  1. 深入学习jQuery自定义插件

    原文地址:jQuery自定义插件学习 1.定义插件的方法 对象级别的插件扩展,即为jQuery类的实例增加方法, 调用:$(选择器).函数名(参数);      $(‘#id’).myPlugin(o ...

  2. MySQL常用命令

    数据库登陆命令: mysql -uroot -p 2.提示输入密码: 3.登陆成功: 4.数据库修改相关命令: 修改数据库的编码格式: 语法格式为:ALTER {DATABASE|SCHEMA}  [ ...

  3. intellij idea 13&14 插件推荐及快速上手建议

    IntelliJIDEA插件安装 首页 > blog Tags : intellij IDEA插件安装 更新日期: 2015-04-29 IntelliJ IDEA插件下载地址: http:// ...

  4. ASP.NET Aries JSAPI 文档说明:AR.DataGrid

    AR.DataGrid 文档 用法: <body> <table id="dg"></table> </body> </htm ...

  5. Ubuntu(Linux) + mono + xsp4 + nginx +asp.net MVC3 部署

    折腾了一下,尝试用Linux,部署mvc3. 分别用过 centos 和 ubuntu ,用ubuntu是比较容易部署的. 操作步骤如下: 一.终端分别如下操作 sudo su ->输入密码 a ...

  6. Handlebars 模板引擎之前后端用法

    前言 不知不觉间,居然已经这么久没有写博客了,坚持还真是世界上最难的事情啊. 不过我最近也没闲着,辞工换工.恋爱失恋.深圳北京都经历了一番,这有起有落的生活实在是太刺激了,就如拿着两把菜刀剁洋葱一样, ...

  7. Leetcode 笔记 99 - Recover Binary Search Tree

    题目链接:Recover Binary Search Tree | LeetCode OJ Two elements of a binary search tree (BST) are swapped ...

  8. 使用Nginx+Lua代理Hadoop HA

    一.Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个Master组件提供服务,其中正在使用的组件称为Active,另一个作为备份称为Standby,例如HDFS的NameNo ...

  9. [异常解决] JLINK 与STM32的SWD连接接线方式

    如果我们的板子上只留了4个接口:V3.3,SWDIO,SWDCLK,GND.那么和JTAG的连接关系参见下图: 注意缺口方向.然后GND可以接左边任何一个pin(除了最底下这个PIN). FROM: ...

  10. Go语言实战 - 使用SendCloud群发邮件

    山坡网需要能够每周给注册用户发送一封名为"本周最热书籍"的邮件,而之前一直使用的腾讯企业邮箱罢工了,提示说发送请求太多太密集. 一番寻找之后发现了大家口碑不错的搜狐SendClou ...