自定义注解

HeJin小于 1 分钟Java注解和反射

使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @Description TODO
 * @Author Administrator
 * @Date 2020/11/28 16:47
 */
public class Test03 {

    @MyAnnotation2(name = "hejin",schools = "西南大学")
    public void test(){

    }
    
    @MyAnnotation3("hejin")
    public void test2(){
        
    }

}

/**
 * @author Administrator
 */
@Target({ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation2{
    /**
     * 注解的参数
     * 没有默认值。使用注解时必须显示赋值
     */
    String name() default "";
    
    int age() default 0;

    /**
     *默认值为-1.代表不存在。
     */
    int id() default -1;
    
    String[] schools() default {"清华大学","西南大学"};
}

/**
 * @author Administrator
 */
@Target({ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation3{
    /**
     * 使用value在使用注解时可不写。使用其他名称必须写。
     * @return
     */
    String value();
}