Java注解 Annotation
2013-02-02 15:47
148 查看
Java注解 Annotation
Annotation的由来
从JDK5.0发布以来,5.0平台提供了一个正式的annotation功能:允许开发者定义、使用自己的annotation类型。此功能由一个定义annotation类型的语法和一个描述annotation声明的语法,读取annotation的API,一个使用annotation修饰的class文件,一个annotation处理工具(apt)组成。
Annotation工作方式
Annotation并不直接影响代码语义,但是它能够被看作类似程序的工具或者类库,它会反过来对正在运行的程序语义有所影响。Annotation可以从源文件、class文件、或者以在运行时反射的多种方式被读取。
JDK中内置的注解
Java注解Annotation:Override注解(@Override)表示子类要重写父类的对应方法。
Deprecated注解(@Deprecated)表示方法是不建议被使用的。
SuppressWarnings注解(如:@SuppressWarnings("unchecked"))表示抑制警告。
括号中的参数(一个字符串数组)表示要压制的警告类型。单个字符串的时候可以用也可以不用花括号,但是多个字符串的时候需要用花括号包起来表示,
比如:
@SuppressWarnings({"unchecked","deprecation"})
如果注解一个类去压制一种警告,再注解类中的方法取压制另一种警告,则方法中会同时压制这两种警告。
Annotation的定义方式
自己定义注解:新建->Annotation.
可以看到注解定义的形式与interface类似,不同的是在interface关键字前面加了一个@符号。
自定义注解:当注解中的属性名为value时,在对其赋值时可以不指定属性的名称而直接写上属性值即可;除了value以外的其他值都需要使用name=value这种显式赋值方式,即明确指定给谁赋值。
[b]程序示例1:[/b]
加入文档的注解
import java.lang.annotation.Documented; @Documented // 表示注解DocumentedAnnotation将会生成到文档里面去 public @interface DocumentedAnnotation { String hello(); } public class DocumentedTest { @DocumentedAnnotation(hello="welcome") public void method() { System.out.println("Hello World!"); } }
[b] [/b]
子类是否继承父类@Inherited
缺省状态下,父类中的annotation并不会被子类继承。可以在定义Annotation型态时加上java.lang.annotation.Inherited型态的Annotation。
比较简单,不再举例。
参考资料
张龙老师Java SE视频教程。另:官方文档是最好的参考资料。
相关文章推荐
- 【Java基础知识】 Annotation03_注解(Annotation)--注解处理器
- Java注解Annotation详解
- 深入理解Java:注解(Annotation)自定义注解入门
- java annotation注解
- java annotation注解
- 深入理解Java:注解(Annotation)自定义注解入门
- JAVA学习11_Java注解Annotation详解
- java1.5新特性-----》注解----Annotation
- java 基础总结--注解(Annotation)自定义注解入门
- 深入理解Java:注解(Annotation)基本概念
- java基础加强-注解(Annotation)
- java 注解(annotation)
- 深入理解Java:注解(Annotation)自定义注解入门
- 深入理解Java:注解(Annotation)--注解处理器
- java 注解Annotation
- Java基础加强总结(一)——注解(Annotation)
- 深入理解Java:注解(Annotation)--注解处理器
- 深入理解Java:注解(Annotation)--注解处理器
- Java注解Annotation详解
- 深入理解Java:注解(Annotation)自定义注解入门