自定义注解
注解(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();}
