欢迎来到天天文库
浏览记录
ID:18888972
大小:220.50 KB
页数:7页
时间:2018-09-26
《jdk5.0 annotation学习笔记》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、背景知识: 从JDK5开始提供名为Annotation(注释)的功能,它被定义为JSR-175规范。注释是以“@注释名”在代码中存在的,还可以添加一些参数值,例如:@SuppressWarnings(value="unchecked")。注释可以附加在package,class,method,field等上面,相当于给它们添加了额外的辅助信息,我们可以通过反射机制编程实现对这些元数据的访问。如果没有外部解析工具等对其加以解析和处理的情况,本身不会对Java的源代码或class文件等产生任何影响,也不会对它们的执行
2、产生任何影响。 元数据的作用,大致可分为三种:编写文档,通过代码里标识的元数据生成文档;代码分析,通过代码里标识的元数据对代码进行分析;编译检查,通过代码里标识的元数据让编译器能实现基本的编译检查。JDK5内置的基本注释 JDK5内置了一些常用的注释,可以在编译时帮我们捕获部分编译错误,及提示信息,下面介绍下这些注释的用法:1、@Override定义在java.lang.Override中,此注释只适用于修辞方法,表示一个方法声明打算重写超类中的另一个方法声明。如果方法利用此注释类型进行注解但没有重写超类方法,则
3、编译器会生成一条错误消息。例如我们为某类重写toString()方法却写成了tostring(),并且我们为该方法添加了@Override注释;代码如下:Java代码 1.public class OverrideDemo { 2. @Override 3.public String tostring() { 4. return super.toString(); 5. } 6.} publicclassOverrideDemo{@OverridepublicStringtostrin
4、g(){returnsuper.toString();}}在编译时,会提示以下错误信息:引用OverrideTest.java:4:方法未覆盖其父类的方法 @Override ^1错误2、@Deprecated定义在java.lang.Deprecated中,此注释可用于修辞方法、属性、类,表示不鼓励程序员使用这样的元素,通常是因为它很危险或存在更好的选择。在使用不被赞成的程序元素或在不被赞成的代码中执行重写时,编译器会发出警告。使用@Deprecated的示例代码如下:Java代码 1.publ
5、ic class DeprecatedDemo { 2. public static void main(String[] args) { 3. DeprecatedClass.DeprecatedMethod(); 4. } 5.} 6. 7.class DeprecatedClass { 8. @Deprecated 9. public static void DeprecatedMethod() { 10. // TODO 11. }
6、12.} publicclassDeprecatedDemo{publicstaticvoidmain(String[]args){DeprecatedClass.DeprecatedMethod();}}classDeprecatedClass{@DeprecatedpublicstaticvoidDeprecatedMethod(){//TODO}}在编译时,会得到以下提示信息:引用注意:DeprecatedDemo.java使用或覆盖了已过时的API。注意:要了解详细信息,请使用-Xlint:deprecation
7、重新编译。如果在编译时添加-Xlint:deprecation参数,我们能更清楚的看到该警告的详细信息,如下:引用DeprecatedDemo.java:6:警告:[deprecation]SomeClass中的DeprecatedMethod()已过时 SomeClass.DeprecatedMethod(); ^1警告要注意@Deprecated与@deprecated的区别,@deprecated是为了生成文档的需要,例如:Java代码 1.c
8、lass DeprecatedClass { 2. /** 3.* @deprecated 此方法已过时,不建议使用 4.*/ 5.@Deprecated 6. public static void DeprecatedMethod() { 7. // TOD
此文档下载收益归作者所有