定义Marker Annotation,也就是Annotation名称本身即提供信息于对程序分析工具来说,主要是检查是否有Marker Annotaion的出现,并作出对应的动作。
1.
定义简单的Annotation:
public @interface AnnotationTest{
}
使用:
public class AnnotationUsage{
@AnnotationTest
public void method(){
System.out.println(“test”);
}
}
2.
有一个值的Annotation
public @interface AnnotationTest{
String value();
}
使用:
@AnnotationTest(“hello world”)
public class AnnotationUsage{
public void method(){
System.out.println(“test”);
}
}
默认值的字段名为value
3.指定一个值的名称的Annotation
public @interface AnnotationTest{
String value1();
}
使用:
@AnnotationTest(value1=“hello world”)
public class AnnotationUsage{
public void method(){
System.out.println(“test”);
}
}
4. 多个参数的Annotation
public @interface AnnotationTest{
String[] value();
}
使用:
@AnnotationTest(value={“hello world”,”wangsy”,”welcome”})
public class AnnotationUsage{
public void method(){
System.out.println(“test”);
}
}
5. 指定多个值的名称的Annotation
public @interface AnnotationTest{
String[] value1();
}
使用:
@AnnotationTest(value1={“hello world”,”wangsy”,”welcome”})
public class AnnotationUsage{
public void method(){
System.out.println(“test”);
}
}
6. 指定默认值
public @interface AnnotationTest{
String value() default “wangsy”;
}
使用:
@AnnotationTest
@AnnotationTest(“hello”)
都可以
7.
枚举在Annotation中的应用
enum EnumTest{Hello,World,Welcome;}
public @interface Annotation Test{
EnumTest value1() default EnumTest.Hello;
}
使用:
@AnnotationTest(value1=EnumTest.Hello)
@AnnotationTest
都可以
使用@interface自行定义Annotation型态时,实际上是自动继承了java.lang.annotation.Annotation接口。
转载于:https://blog.51cto.com/jawsy/153576