美文网首页
java超快速入门(四):JAVA中的注解

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

作者: 自我De救赎 | 来源:发表于2021-03-14 12:59 被阅读0次

    本章知识来源: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);
        }
    }
    

    相关文章

      网友评论

          本文标题:java超快速入门(四):JAVA中的注解

          本文链接:https://www.haomeiwen.com/subject/aoixcltx.html