第一课 掌握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”})
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”})
相关文章推荐
- JAVAWEB开发之Servlet3.0新特性的使用以及注解的详细使用和自定义注解的方法、动态代理的使用、利用动态代理实现细粒度的权限控制以及类加载和泛型反射
- JAVAWEB开发之事务详解(mysql与JDBC下使用方法、事务的特性、锁机制)和连接池的详细使用(dbcp以c3p0)
- Java 注解(Annotation)使用方法归纳
- java教程之java注解annotation使用方法
- Java技术_每天掌握一种设计模式(003)_使用场景及简单实例(创建型:工厂方法)
- JavaSE_8系列博客——Java语言的特性(五)--接口和继承(6)--默认方法的使用场景
- java7新特性之方法句柄MethodHandle使用
- Android 使用Java8新特性之"方法引用"
- Java Annotation 必须掌握的特性
- Java Annotation-必须掌握的特性
- java教程之java注解annotation使用方法
- java的FileChannel使用方法。
- JAVA中关于set()和get()方法的理解及使用
- java中File类的使用方法
- java使用Cookie判断用户登录情况的方法
- Java 理论与实践: 在 JDK 早期版本中使用 Java 5 的语言特性
- Java线程的使用方法
- Java网络编程基础 Datagram类使用方法
- java使用hashMap缓存保存数据的方法
- 找到java代码中没有被使用的公用方法