java超快速入门(四):JAVA中的注解

本章知识来源:https://www.bilibili.com/video/BV1Vt411g7RP

java内置注解

  • @Override
  • @Deprecate
  • @SuppressWarning

自定义注解

1、注解的本质为一个接口,因此可以定义抽象方法
2、这些抽象方法在注解中成为属性,属性的类型只能为以下类型:

  • int类型
  • string类型
  • 枚举类型
  • 注解类型
  • 以上类型的数组

3、定义属性时可以使用default关键字设置属性的默认值

public @interface Annotation{
    public abstract int show();//int类型
    public abstract String name() default "zhangsan";
}

4、使用注解时,需要对注解的所有属性进行赋值,多个属性用逗号分隔如

@Annotation(show=1,name="hello");
class MyClass{
}

4、当注解只有一个属性,并且属性名称为value时,则使用时不需要声明属性名称,直接赋值就可以了,如

public @interface Annotation2{
    public abstract int value();//int类型
}

@Annotation2(12);
class MyClass{
}

元注解

元注解是作用于注解的注解,在java.lang.annotation包内,内置的元注解有以下几个

  • @Documented 指明该注解是否被抽取到api文档中
  • @Inherited 指明子类将继承当前注解
  • @Repeatable
  • @Retention 指明注解作用于哪个阶段
  • @Target 指明注解作用于哪个类型

解析注解

定义了注解以后,我们需要解析注解中定义的属性的值,使用java的反射类获取

class Main{
    public static void main(String[] args){
        
        //1.获取该类的字节码文件对象
        Class<ReflectTest> reflectTestClass = ReflectTest.class;
        //2.获取上边的注解对象
        Annotation an = reflectTestClass.getAnnotation(Annotation.class);
        //3.调用注解对象中定义的抽象方法,获取返回值
        int show = an.show();
        String name = an.name();
        System.out.println(show);
        System.out.println(name);
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容