注解

注解并不是实现一个接口 它有自己的关键字@interface
可以看作是注释,但注释是给程序员看的,注解是给程序看的

宏观理解

注解肯定由两部分组成:
一个是自己携带的信息,就像给人衣服后面贴张纸,上面写着我是猪。不然光贴个标签也没用
第二个就是规范,可以作用在哪,生效范围之类的,这个叫元注解。
只是用法和普通的类不太一样,就像enum一样有点奇怪,下面对比一下用法

最简单自定义注解

一开始试了好久,想直接就用,但是发现必须有这两个元注解才能生效
注解肯定是要携带信息的。除非是那种检查型的注解如override(这种叫做标识)。
如果只有一个属性的话,建议为value,操作的时候可以不写

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation{
    String value() default "cce";
}
@MyAnnotation
class A{ }
@MyAnnotation("我是你哥哥")
class B{ }
public class AnnoTest {
    public static void main(String[] args) {
        MyAnnotation annotation = B.class.getDeclaredAnnotation(MyAnnotation.class);
        System.out.println(annotation.value());
    }
}

四大元注解

也就是上面说的第二部分
@Documented,@Inherited,@Target,@Retention

原文地址:https://www.cnblogs.com/purexww/p/15268239.html