自定义一个注解 //自定义注解 public class Test03 { //注解可以显式赋值,如果没有默认值,我们就必须给注解赋值,否则会报红 @MyAnnotation2(name="木子旭") public void test2(){ } @MyAnnotation3("木子旭") public void test3(){ } } @Target({ElementType.TYPE,ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @interface MyAnnotation2{ //注解的参数:参数类型+参数名+() String name() default ""; int age() default 0; int id() default -1; //如果默认值为-1,代表不存在,indexof,如果找不到,就返回-1 String[] schools() default {"清华","北大"}; } @Target({ElementType.TYPE,ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @interface MyAnnotation3{ String value(); } 注意事项 自定义注解的参数必须是:参数类型+参数名+()default是用来给参数赋默认值若参数没有默认值,那么我们在其他地方使用该注解的时候就必须给参数赋值如果参数名为value,在使用注解给参数赋值的时候可以直接@MyAnnotation3(“木子旭”)而不用@MyAnnotation2(value=“木子旭”),但是如果参数名不为value,那么就必须@MyAnnotation2(name=“木子旭”),否则会报红具体这些参数有什么用,以后会有讲到