J2SE5.0中新特性:注释
【IT168 技术文档】
三、如何自定义注释
注释的强大之处是它不仅可以使java程序变成自描述的,而且允许程序员自定义注释。注释的定义和接口差不多,只是在interface前面多了一个“@”。
上面的代码是一个最简单的注释。这个注释没有属性。也可以理解为是一个标记注释。就象Serializable接口一样是一个标记接口,里面未定义任何方法。public @interface MyAnnotation
...{
}
当然,也可以定义而有属性的注释。
可以按如下格式使用MyAnnotationpublic @interface MyAnnotation
...{
String value();
}
看了上面的代码,大家可能有一个疑问。怎么没有使用value,而直接就写”abc”了。那么”abc”到底传给谁了。其实这里有一个约定。如果没有写属性名的值,而这个注释又有value属性,就将这个值赋给value属性,如果没有,就出现编译错误。@MyAnnotation(“abc”)
public void myMethod()
...{
}
除了可以省略属性名,还可以省略属性值。这就是默认值。
可以直接使用MyAnnotationpublic @interface MyAnnotation
...{
public String myMethod()...{} default “xyz”;
}
也可以这样使用@MyAnnotation // 使用默认值xyz
public void myMethod()
...{
}
@MyAnnotation(myMethod=”abc”)
public void myMethod()
...{
}
如果要使用多个属性的话。可以参考如下代码。
这一节讨论了如何自定义注释。那么定义注释有什么用呢?有什么方法对注释进行限制呢?我们能从程序中得到注释吗?这些疑问都可以从下面的内容找到答案。public @interface MyAnnotation
...{
public enum MyEnum...{A, B, C}
public MyEnum.value1() ...{}
public String value2() ...{}
}
![]()
@MyAnnotation(value1=MyAnnotation.MyEnum.A, value2 = “xyz”)
public void myMethod()
...{
}
0
相关文章
