您的位置:首页 > 编程语言 > Java开发

第一课 掌握java annotation特性与使用方法

2009-04-24 16:29 501 查看
l Annotation的由来
l Annotation的定义方式
l Annotation的使用方式
l JDK5内建Annotation详解
l Annotation高级特性

为什么要使用Annotation?
在java应用中,我们常遇到一些需要使用模版代码的情况。例如,为了编写一个web service,我们必须提供一对接口和实现作为模版代码。如果使用Annotation对远程访问的方法代码进行修饰的话,这个模版就能够使用工具自动生成。
另外,一些API需要使用与程序代码同时维护的附属文件。例如EJB需要一个部署描述符。此时在程序中使用Annotation来维护这些附属文件的信息将十分便利而且减少了错误。

Annotation工作方式?
从java5.0版发布以来,5.0平台提供了一个正式的Annotation功能:允许开发者定义、使用自己的Annotation类型。此功能由一个定义Annotation类型的语法和一个描述Annotation声明的语法,读取Annotation的API,一个使用Annotation修饰的class文件,一个Annotation处理工具(apt)组成。
Annotation并不直接影响代码语义,但是它能够工作的方式被看作类似程序的工具或者类库,它会反过来对正在运行的程序语义有所影响。Annotation可以从源文件、class文件或者以在运行时反射的多种方式被读取。
当然Annotation在某种程序上使javadoc tag更加完整。一般情况下,如果这个标记对java文档产生影响或者用于生成java文档的话,它应该作为一个javadoc tag,否则将作为一个Annotation。

使用JDK5内建的Annotation:
l Override
l Deprecated
l SuppressWarnings

1) Override
表示子类强制覆盖父类的方法
public class OverrideTest{
@Override
public String toString(){
return “This is Override”;
}
}

2) Deprecated
过时的,不建议使用的方法
public class DeprecatedTest{
@Deprecated
public void doSomething(){
System.out.println(“do something”);
}
}

子类覆写父类的Deprecated方法时也类似
public class SubDeprecatedTest extends DeprecatedTest{
@Override
public void doSomething(){
System.out.println(“do something in sub class”);
}
}

3) SuppressWarnings
压制警告,注意需要带参数
public class SuppressWarningsTest{
@SuppressWarnings(“unchecked”)
public static void main(String[] args){
Map map = new TreeMap();
map.put(“hello”,new Date());
System.out.println(map.get(“hello”));
}
}

压制多个警告,使用字符串数据形式
@SuppressWarnings({“unchecked”,”deprecation”})
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: