Java注解
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注解的更多相关文章
- 19.Java 注解
19.Java注解 1.Java内置注解----注解代码 @Deprecated //不推荐使用的过时方法 @Deprecated ...
- Java注解入门
注解的分类 按运行机制分: 源码注解:只在源码中存在,编译后不存在 编译时注解:源码和编译后的class文件都存在(如@Override,@Deprecated,@SuppressWarnin ...
- java注解(Annotation)解析
注解(Annotation)在java中应用非常广泛.它既能帮助我们在编码中减少错误,(比如最常见的Override注解),还可以帮助我们减少各种xml文件的配置,比如定义AOP切面用@AspectJ ...
- JAVA 注解的几大作用及使用方法详解
JAVA 注解的几大作用及使用方法详解 (2013-01-22 15:13:04) 转载▼ 标签: java 注解 杂谈 分类: Java java 注解,从名字上看是注释,解释.但功能却不仅仅是注释 ...
- attilax.java 注解的本质and 使用最佳实践(3)O7
attilax.java 注解的本质and 使用最佳实践(3)O7 1. 定义pojo 1 2. 建立注解By eclipse tps 1 3. 注解参数的可支持数据类型: 2 4. 注解处理器 2 ...
- paip.java 注解的详细使用代码
paip.java 注解的详细使用代码 作者Attilax 艾龙, EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/att ...
- JAVA 注解的几大作用及使用方法详解【转】
java 注解,从名字上看是注释,解释.但功能却不仅仅是注释那么简单.注解(Annotation) 为我们在代码中添加信息提供了一种形式化的方法,是我们可以在稍后 某个时刻方便地使用这些数据(通过 解 ...
- 框架基础——全面解析Java注解
为什么学习注解? 学习注解有什么好处? 学完能做什么? 答:1. 能够读懂别人写的代码,特别是框架相关的代码: 2. 让编程更加简洁,代码更加清晰: 3. 让别人高看一眼. spring.mybati ...
- Java注解配置
Java注解是附加在代码中的一些元信息,用于一些工具在编译.运行时进行解析和使用,起到说明.配置的功能.注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用.包含在 java.lang.annota ...
随机推荐
- 游戏AI系列内容 咋样才能做个有意思的AI呢
游戏AI系列内容 咋样才能做个有意思的AI呢 写在前面的话 怪物AI怎么才能做的比较有意思.其实这个命题有点大,我作为一个仅仅进入游戏行业两年接触怪物AI还不到一年的程序员来说,来谈这个话题,我想我是 ...
- 太多选择——企业如何选择合适的BI工具?
在没认清现状前,企业当然不能一言不合就上BI. BI不同于一般的企业管理软件,不能简单归类为类似用于提高管理的ERP和WMS,或用于提高企业效率的OA.BPM.BI的本质应该是通过展现数据,用于加强企 ...
- Linux上课笔记--随手记Linux命令
初次接触Linux就是感觉这系统不够友好不够人性化,因为首先接触电脑就是win,图形化界面什么操作都可以清晰看到.随着更多的接触越来越发现Linux的强大,虽然我只是一个小白,可我就是爱上他了.现在就 ...
- Spring mvc @initBinder 类型转化器的使用
一.单日期格式 因为是用注解完完成的后台访问,所以必须在大配置中配置包扫描器: 1.applicactionContext.xml <?xml version="1.0" e ...
- BZOJ 1006 【HNOI2008】 神奇的国度
题目链接:神奇的国度 一篇论文题--神奇的弦图,神奇的MCS-- 感觉我没有什么需要多说的,这里简单介绍一下MCS: 我们给每个点记录一个权值,从后往前依次确定完美消除序列中的点,每次选择权值最大的一 ...
- 如何让我们的PHP在Jexus中跑起来
最近一段时间,经常看到不少的朋友在问,应该怎么设置才能够让Jexus支持PHP.其实,Jexus在很早之前就已经是可以支持PHP,像Apache或Nginx一样充当PHP的Web服务器的.不过由于没有 ...
- Linux学习日记-EF6的安装升级(三)
在vs2013中使用EF是5的但是如果想使用 “来自数据库据的Code First” 这个生成模板就会发现 它会提示你EF的版本太低请升级 下面就是解决办法: 安装实体框架6 在工具菜单中,点击NuG ...
- Lesson 24 It could be worse
Text I entered the hotel manager's office and sat down. I had just lost £50 and I felt very upset. ' ...
- AngularJS 第四天----控制器
控制器的作用 今天和大家学习AngularJS中控制器方面的知识,本文会给出一些例子来说明如何使用AngularJS的控制器.在开始我们的例子之前,首先说说AngularJS控制器的作用.简单的来说A ...
- SSH隧道应用, 突破网络限制
文/怡文圣美 这篇文章可以帮你解决下面三个问题: 不能直连服务器, 要先登陆跳板机, 造成客户端工具无法连接服务器. 服务器没有公网IP, 且只允许公司IP访问, 要在家里操作要先远程桌面到工作机再登 ...