自定义注解
注解(Annotation)
语法:
@Target(ElementType[] value()) //定义注解可应用的对象 如应用于类上 方法上
@Retention(RetentionPolicy value()) //定义注解可以作用的范围 resource@interface AnnoName{
datatype param1();
datatype param2() default xx ;
}
public class DefAnno {
//使用自定义的注解
@MyAnnotation(name = "william", schools = {"CQU"})
public void test() {
}
@MyAnnotation2("ABC") //约定如果只有一个的参数且参数名为value, 则可以省略参数名赋值
public void test2() {
}
}
//定义注解
@Target({ElementType.ANNOTATION_TYPE, ElementType.METHOD}) //定义注解可应用的对象 此处为类上和方法上
@Retention(RetentionPolicy.RUNTIME) //定义注解可以作用的范围 resource(源代码) < class(字节码) < runtime(运行时)
@interface MyAnnotation {
String name() default ""; //定义注解的参数: 参数类型 + 参数名() 后面可用default xxx 设定参数默认值
int age() default 0;
int id() default -1;
String[] schools();
}
//定义另一个注解
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation2 {
String value();
}