其实说起注解语法,对于任何一个Java开发人员来说都已经耳熟能详了,我们每天都在使用着 @author, @param,等等编写注释,然后用javadoc生成文档。Java的这种方便的文档生成方法受到了开发者的普遍赞誉。而从JDK1.5开始,注释语法提供了更为强大的功能。
我们先谈谈注释语法本身,它有时候也称为meta-data :“描述数据的数据” 。注解成为一种趋势。spring,struts2等都有自己的注解机制。
创建一个注解类:HzkjAnno.java
@Retention(RetentionPolicy.RUNTIME) //状态保持到什么时候,
@Target({ElementType.METHOD,ElementType.TYPE}) //可以对那些元素加注解
public @interface HzkjAnno
{
String name() default "lyr";
String value();
int[] arrayAttr() default {1,2,3};
MetaData metaData() default @MetaData("lyr");
}
创建一个测试类:
@HzkjAnno(name="lyr",value="aaa",arrayAttr={2,4,6},metaData=@MetaData("abc"))
public class AnnoTest
{
@HzkjAnno("dddddddd")
public static void main(String[] args) throws RuntimeException, NoSuchMethodException {
if(AnnoTest.class.isAnnotationPresent(HzkjAnno.class)){
HzkjAnno h=(HzkjAnno)AnnoTest.class.getAnnotation(HzkjAnno.class);
System.out.println(h.name());
System.out.println(h.metaData().value());
}
Method m=AnnoTest.class.getMethod("main", String[].class);
HzkjAnno h=(HzkjAnno)m.getAnnotation(HzkjAnno.class);
System.out.println(h.value());
}
}