天天看点

Java编程思想学习笔记——注解

这类依赖注解库。代码示例如下:

可以看出通过注解,我们能大量减少啰嗦的声明和强转类型的代码的编写。

通过本篇文章的学习,对注解有个基本的认识和了解。

注解(也叫元数据)为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻非常方便地使用这些数据。

1.可以提供用来完整地描述程序所需的信息(这些信息无法用java表达)-> 以将由编译器来测试和验证的格式存储有关程序的额外信息。

2.可以用来生成描述符文件或是新的类的定义->减轻编写"样板"代码的负担

3.更加干净易读的代码以及编译器类型检查

@符号的使用,其他和java固有语法一样

java se5内置了三种,定义在java.lang中的注解:

@override 当前的方法定义将覆盖父类(超类)中的方法。 @suppresswarnings 关闭不当的编译器警告信息

java提供四种注解,专门负责新注解的创建。这种注解叫做元注解。

1.@target 表示该注解可以用于什么地方。

elementtype参数包括:

2.@retention 表示需要在什么级别保存该注解信息。

retentionpolicy参数包括

3.@documented 将此注解包含在javadoc中

4.@inherited 允许子类继承父类中的注解

注解的定义很像一个空的接口。定义注解时,会需要一些元注解(meta-annotation,如上所示)

在注解中,一般都会包含一些元素以表示某些值。分析处理注解时,程序或工具可以利用这些值。

注解的元素看起来就像接口的方法,唯一的区别是可以为它设置默认值。

注解的元素在使用时表现为名-值对的形式。

每当创建描述符性质的类或接口时,如果包含了重复性的工作,就可以考虑使用注解来简化与自动化该过程。

使用注解很重要的一部分就是创建与使用注解处理器。java se5拓展了反射机制的api(构造这类工具),还提供了外部工具apt帮助我们解析带有注解的java源代码。

使用了两个反射的方法:getdeclaredmethods()和getannotation()(这两个方法都属于annotatedelement接口,class,method和field等类都实现了这个接口)

注解元素可用的类型如下:

编译器对元素的默认值有限制。

不能有不确定的值

(即要么具有默认值,要么使用注解时提供的元素的值)

原文地址:http://www.cnblogs.com/johntsai/p/4926203.html

继续阅读