其实说起注解语法,对于任何一个Java开发人员来说都已经耳熟能详了,我们每天都在使用着 @author, @param,等等编写注释,然后用 javadoc生成文档。Java的这种方便的文档生成方法受到了开发者的普遍赞誉。而从JDK1.5开始,注释语法提供了更为强大的功能。
我们先谈谈注释语法本身,它有时候也称为meta-data :“描述数据的数据” 。一般来说它们可以被用来生成文档,检查代码间依赖关系,帮助编译器作语法检查。时下比较流行的工具有Xdoclet等。对于文档生成早已经有了javadoc工具的完美表现,而对于代码检查,如今java也提供了语言级的支持。
我们知道,javadoc是通过提取java源文件中的标签信息来生成文档。所以要学习新的注释语法,们首先要熟悉的就是新增的标签。新的注释语法支持两种标签,系统标准标签和用户自定义标签。标签的符号也原先一样,@符号加上标签名字。我们先从JDK1.5自带的标准标签说起。
首先介绍@override , 也不用多罗嗦,顾名思义了,就是用来说明方法覆载的。我们假设有一个子类必须要覆载父类的方法.
================================================================================
public class Parent{
public void foo(){
System.out.println("Original Implementation of foo");
}
}
public class Child extends Parent{
@Override
public void foo(){
System.out.println("Overide Implementation of foo");
}
}
================================================================================
目前为止我们看不出来这个@Override给我们带来了任何好处,所以我们先说说加个这个标签后,我们用javac编译的时候编译器执行了些什么呢?编译器会检查这个方法,然后从父类查找是否有这个方法,否则就编译出错。这个特性可以帮助我们避免一些低级错误。上面这个例子,子类想覆载foo()方法,不过你可能一时疏忽把它写成了fob(), 对于这样的”低级错误”,如果你没有在前期就发现的话,到系统集成测试的时候,可能会化上你几个小时甚至一两天去找出这样的bug。现在好了,编译器在编译的时候就会给出错误,
Child.java:3: method does not override a method from its superclass
@Override
^
1 error
怎么样,这个功能还不错吧。
看过了标准标签的使用方法,我们来看看用户自定义标签。首先介绍@interface, 它用于定义新的注释类型(annotation type)。新建一个注释类型看起来和定义一Interface 没有什么两样,
MyTag.java用于新建一个用户自定义标签,代码如下,
================================================================================
package tiger.annotation;
public @interface MyTag { }
定义了一个tag之后,我们就可以在任何java文件中使用这个tag了,
import tiger.annotation.MyTag;
public class TagTest{
@MyTag
public void testTag(){
}
}
===============================================================================
注释类型还可以有成员变量,
==============================================================================
package tiger.annotation;
public @interface MyTag {
String name();
int age();
}
=============================================================================
然后我们可以这么使用这个标签,
@MyTag(name="MyTag",age=1)
public void testTag(){
}
使用标签最终是为了帮助开发人员提取注释信息,然后根据不同需求做进一步处理,下面我们来看看如何获取注释信息。
=============================================================================
import java.lang.annotation.Annotation;
import tiger.annotation.MyTag;
public class TagTest{
@MyTag(name="MyTag",age=1)
public void test(){
}
public static void main(String[] args){
TagTest tt = new TagTest();
try {
Annotation[] annotation =tt.getClass().getMethod("test").getAnnotations();
for (Annotation tag :annotation) {
System.out.println("Tag is:" + tag);
System.out.println("tag.name()" + ((MyTag)tag).name());
System.out.println("tag.age()" + ((MyTag)(tag)).age());
}
} catch(NoSuchMethodException e) {
e.printStackTrace();
}
}
}
===============================================================================
需要注意的一点是,在执行这段代码之前我们还有一点小工作要做,还需要给我们的自定义标签MyTag加上一个说明标签,@ Retention, 表明注释信息将可以在运行时刻通过反射机制得到。如果不加入这个标签,上面的代码将没有任何输出。修改以后的MyTag如下,
================================================================================
@Retention(RetentionPolicy.RUNTIME)
public @interface MyTag {
String name();
int age();
}
================================================================================
然后我们执行TagTest可以得到输出如下,
Tag is:@tiger.annotation.MyTag(name=MyTag, age=1)
tag.name()MyTag
tag.age()1
好了,Tiger新的注释语法基本用法就这么简单,基本用法虽然简单,但是获取注释信息之后如何处理确很值得推敲,我们可以用他们来做一些语法检查,文件相关性检查,进行各种统计等等。关于更多的Tiger新注释语法的信息,可以访问[link=http://java.sun.com/j2se/......e/language/annotations.html]。
<!-- -->
分享到:
相关推荐
在本文中,我们将深入探讨JDK 1.5的注释语法,并通过实例来理解其用法。 注释的三种类型: 1. **保留注解(Retention)**:根据保留策略,注释可以存在于源代码、字节码或运行时。`@Retention(RetentionPolicy....
标题:“jdk1.5 windows版本 64位” 描述:“jdk1.5 windows版本 64位,Java开发依赖环境” 标签:“windows” 在这个主题中,我们聚焦的是Oracle JDK 1.5(也被称为Java Development Kit,简称JDK)在Windows...
JDK1.5是Java的一个重要版本,它在2004年9月30日正式发布,也被称为Java 5.0。这个版本引入了大量的新特性,对Java平台进行了重大改进,提升了开发效率和性能。 首先,JDK1.5引入了类型安全的枚举(enum),这是对...
Linux系统中的JDK1.5是Java开发工具包的一个早期版本,主要针对Java语言的编译、运行和调试提供支持。这个版本在今天已经相对较为罕见,因为Java已经有了多个后续版本,包括JDK7、JDK8、JDK9直至最新的JDK17等。然而...
JDK1.5,也称为Java 5.0,是一个重要的版本,它引入了许多新的特性和改进,对Java语言的发展产生了深远影响。 一、泛型(Generics) 在Java 5.0中,最重要的特性之一就是泛型的引入。泛型允许开发者在定义类、接口...
JDK1.5,全称Java Development Kit 1.5,是Java平台标准版(Java SE)的一个重要版本,由Sun Microsystems在2004年9月30日正式发布。这个版本引入了大量的新特性,对Java编程语言进行了重大改进,极大地提升了开发...
jdk1.5.exe jdk1.5 jdk1.5下载
绝版jdk1.5,非常不错的资源。用起来很好。是 Java语言对Bean类属性、事件的一种缺省处理方法。例如类A中有属性name,那我们可以通过getName,setName来得到其值或者设置新 的值。通过getName/setName来访问name属性,...
前几天上传过这个资源,因为是在jdk1.6上开发的, 测试了一下在jdk1.5上不能用, 今天重新用jdk1.5编译了一下, 这个是可以支持jdk1.5+的 将 pu-xlscommon-1.0.0.jar 添加到工程的 /lib 目录下 用法在附件中 XlsTest....
这个压缩包包含了三个不同版本的JDK:JDK 1.5、JDK 1.6和JDK 1.8,其中1.5和1.6是早期版本,而1.8是最流行且广泛使用的版本之一。 **JDK 1.5(也称为Java 5.0)** JDK 1.5在2004年发布,引入了许多重要的新特性,如...
测试可用的linux版jdk1.5,jdk-1_5_0_19-linux-i586-rpm.bin
标题中的"window JDK1.5 32位 绿色免安装版"指的是适用于Windows操作系统的32位版本的JDK 1.5,它是一个便携式版本,无需正式安装即可使用。这种绿色免安装版通常是为了方便开发者在不同机器间快速切换工作环境,或...
**JDK1.5**,又称为Java Development Kit的第5个主要版本,标志着Java语言的一个重大里程碑。这个版本引入了一系列创新性特性和改进,极大地提升了开发效率和代码的可读性,为Java编程带来了全新的体验。以下是JDK...
变量注解(annotations)是JDK1.5引入的新特性,它允许在代码中添加元数据,这些元数据可以用于编译器检查、代码生成、运行时处理等。例如,@Override注解确保方法是重写父类的方法,@Deprecated则标记不再推荐使用...
JDK1.5 全平台安装包下载 百度网盘资源 jdk-1_5_0_22-linux-amd64-rpm.bin jdk-1_5_0_22-linux-amd64.bin jdk-1_5_0_22-linux-i586-rpm.bin jdk-1_5_0_22-linux-i586.bin jdk-1_5_0_22-solaris-amd64...
在压缩包"IBMJDK1.5linux.zip"中,主要包含的是IBM JDK 1.5的安装文件和相关文档。安装完成后,开发者可以通过设置环境变量(如JAVA_HOME、PATH)来使用这个JDK。通常,这个JDK会包含Java编译器(javac)、Java解释...
在"IBM_jdk1.5_Guide.pdf"这个文档中,很可能是IBM JDK 1.5的官方指南或开发者手册,它将详细阐述如何安装、配置和使用IBM JDK 1.5,以及如何在AIX环境下进行Java开发。而"www.pudn.com.txt"可能是下载资源的来源...
本文将深入探讨Linux下JDK1.5的相关知识点,帮助用户更好地理解和使用这个版本的Java开发环境。 首先,安装JDK1.5在Linux系统中通常涉及以下步骤: 1. **下载**:你需要从Oracle官方网站或者第三方镜像站点下载...
Java Development Kit(JDK)是Java编程语言的核心组件,它包含了一个Java编译器、Java运行时环境(JRE)、调试工具和其他必要...因此,这个压缩包中的"jdk1.5.exe"可能是开发者为了兼容性或历史项目而寻找的重要资源。
JDK 1.5,也称为Java 5.0,是一个重要的里程碑,因为它引入了许多新的特性和改进,对于Java开发者来说具有深远的影响。 1. 泛型(Generics): JDK 1.5引入了泛型,允许在类、接口和方法中定义类型参数,增强了代码...