了解java注解
类似于下面这样的就是注解

注解可以在类上,成员变量上,方法上等
假如有2个注解是这样的:(其中的Author和Date)

那么这2个注解的定义就是这样的:
Author注解:

Date注解:

可以看到注解的定义和接口的定义比较类似,而Author注解中有name属性,所以使用Author的时候比较要填写name属性值
如果想要注解有默认值,可以这样:

这样使用Author注解时age属性值就可以不用填写,一个注解有多个属性值时使用时用逗号隔开
如果注解中只定义了1个属性且名称为value,那么使用时名称可省略,像这样:


注解也是一种类型,既然可以定义,那么也是可以获取的,像这样:

运行你会发现是会报错的,难道是代码错了,其实并不是,是注解的保留策略没有更改
再就要谈到元注解了,元注解就是注解类型上的注解,先看一下注解@Override的元注解

其中@Target和@Retention就是元注解,其中@Target表示注解的应用范围,@Retention表示注解的保留策略
这两个注解可以根据java.lang.annotation接口去查阅
java.lang.annotation.RetentionPolicy

所以只需要将@Retention的值设置为RUNTIME就可以读取注解了,它的默认值是CLASS
java.lang.annotation.ElementType

@Target的默认值应该是这所有的(这个我没有尝试啊)
看到这里就应该知道怎么解决刚才报错的问题了
只需要在自定义注解上加上元注解@Retention就行了,当然,也可以设置一下注解@Target,就像这样:
Author注解:

Date注解:

再运行就可以得到结果了
还有刚才提到的关于注解的继承,也是使用元注解:@Inherited
注解默认不继承,不过这继承也是有限制的
@Inherited //表示注解是否能继承, 只能作用在类上, 只对类的继承有效, 对实现接口无效
注解可能用到的地方不多,不过了解注解可以让我们更理解一些东西。比较springmvc中的注解等
了解java注解的更多相关文章
- Java注解
Java注解其实是代码里的特殊标记,使用其他工具可以对其进行处理.注解是一种元数据,起到了描述.配置的作用,生成文档,所有的注解都隐式地扩展自java.lang.annotation.Annotati ...
- 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 ...
随机推荐
- Git初探--笔记整理和Git命令详解
几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...
- FFmpeg 中AVPacket的使用
AVPacket保存的是解码前的数据,也就是压缩后的数据.该结构本身不直接包含数据,其有一个指向数据域的指针,FFmpeg中很多的数据结构都使用这种方法来管理数据. AVPacket的使用通常离不开下 ...
- continue break 区别
在循环中有两种循环方式 continue , break continue 只是跳出本次循环, 不在继续往下走, 还是开始下一次循环 break 将会跳出整个循环, 此循环将会被终止 count = ...
- MFC中成员变量的声明顺序与析构顺序
第一次用博客,第一篇随笔,就写今天遇到的一个问题吧. 在VS2008的MFC对话框程序,窗口成员变量的声明顺序与其析构顺序相反,即,先声明的变量后析构,后声明的变量先析构.未在其他模式下测试. cla ...
- Android中AlarmManager使用示例(持续更新,已经更改)
现在普遍的手机都会有一个闹钟的功能,如果使用Android来实现一个闹钟可以使用AtarmManager来实现.AtarmManager提供了一种系统级的提示服务,允许你安排在将来的某个时间执行一个服 ...
- Android Weekly Notes Issue #234
Android Weekly Issue #234 December 4th, 2016 Android Weekly Issue #234 本期内容包括: ConstraintLayout的使用; ...
- join Linq
List<Publisher> Publishers = new List<Publisher>(); Publisher publish1 = new Publisher() ...
- 在Linux配置Nginx web服务器步骤
系统环境:centos7 需要软件:nginx-1.3.16.tar.gz libevent-2.0.21-stable.tar.gz Pcre 和 pcre-devel nginx下载地址:h ...
- 练习JavaScript判断上传文件后缀名
<script type = text/javascript> function jiance(filename) { var pic = ["jpg","p ...
- C#经典笔试题-获取字符串中相同的字符以及其个数
public Dictionary<char,int> GetStrSameAs(string str){ //将字符串转换成一个字符数组. char[] charArray=str.To ...