创建自己的Annotation通过@interface关键字来实现,如
[quote]
[color=blue]//没有member的Annotation[/color]
public @interface MyAnnotation {}
[color=blue]//有member的Annotation[/color]
public @interface MyAnnotation {
String value();[color=blue]//创建一个隐含没有且主体的abstract方法,编译器同时创建一个同名的member变量。[/color]
}
[color=blue]//有多个memberAnnotation[/color]
public @interface MyAnnotation {
public enum Type {CLASS, INTERFACE,ENUM}
Type type();
String value();
}
[color=blue]//有默认值的Annotation[/color]
public @interface MyAnnotation {
public enum Type {CLASS, INTERFACE,ENUM}
Type type() default Type.CLASS;
String value();
}
[color=blue]//调用例子[/color]
@MyAnnotation(type=MyAnnotation.Type.CLASS,value="annotation")
public void doSomething(){}
[/quote]
Anotation不能继承其他的interface或其他的annottation,但是可以继承并实现annotation(这样将不会被当作annotation类型)
[quote]
[color=blue]//没有member的Annotation[/color]
public @interface MyAnnotation {}
[color=blue]//有member的Annotation[/color]
public @interface MyAnnotation {
String value();[color=blue]//创建一个隐含没有且主体的abstract方法,编译器同时创建一个同名的member变量。[/color]
}
[color=blue]//有多个memberAnnotation[/color]
public @interface MyAnnotation {
public enum Type {CLASS, INTERFACE,ENUM}
Type type();
String value();
}
[color=blue]//有默认值的Annotation[/color]
public @interface MyAnnotation {
public enum Type {CLASS, INTERFACE,ENUM}
Type type() default Type.CLASS;
String value();
}
[color=blue]//调用例子[/color]
@MyAnnotation(type=MyAnnotation.Type.CLASS,value="annotation")
public void doSomething(){}
[/quote]
Anotation不能继承其他的interface或其他的annottation,但是可以继承并实现annotation(这样将不会被当作annotation类型)