• 元注解


    元注解的作用是解释注解其他注解,java定义了4个标准的metaannotation类型,它们被用作对其他的annotation类型说明。元注解分类如下:

    • @Target:用于描述注解的使用范围
    • @Retention:表示需要在什么级别保存注解信息,用于描述注解的声明周期,其中SOURCE<CLASS<RUNTIME
    • @Document:说明该注解将包含在javadoc中
    • @Inherited:说明子类可以继承父类中的该注解

    自定义注解,使用元注解修饰,【AnnotationTest.java】

    package day15;
    
    
    import java.lang.annotation.ElementType;
    import java.lang.annotation.Retention;
    import java.lang.annotation.RetentionPolicy;
    import java.lang.annotation.Target;
    
    @interface AnnotationTest {
    
    }
    
    class Test01 {
        //注解可以显示赋值,如果没有默认值就必须给注解赋值
        @AnnotationTest1(name = "huahua", sclass = {})
        public void Test01() {
    
        }
    
        //如果注解只有一个参数,且为value时可以省略参数名,其他参数名不可以省略
        @AnnotationTest2("")
        public void test02() {  //一个类中方法不能有多个public修饰
    
        }
    }
    
    @Target({ElementType.METHOD, ElementType.TYPE})
    @Retention(RetentionPolicy.RUNTIME)
    @interface AnnotationTest1 {
        //注解的参数,类型+参数名()[default 默认值]
        String name() default "";
    
        int age() default 0;
    
        int id() default -1;
    
        String[] sclass();
    }
    
    /*注解的使用范围有:TYPE、FIELD、METHOD、PARAMETER、CONSTRUCTOR、LOCAL_VARIABLE、
    ANNOTATION_TYPE、PACKAGE、TYPE_PARAMETER、TYPE_USE
    */
    @Target({ElementType.METHOD, ElementType.TYPE})
    //注解的声明周期有:SOURCE、CLASS、RUNTIME
    @Retention(RetentionPolicy.RUNTIME)
    @interface AnnotationTest2 {
        //注解的参数,类型+参数名()[default 默认值]
        String[] value();
    }
    欢迎批评指正,提出问题,谢谢!
  • 相关阅读:
    Elasticsearch 检索
    Elasticsearch 基本操作
    Elasticsearch 集群
    Elasticsearch 插件head和kibana
    Elasticsearch 安装
    CentOS 安装JDK
    前端登录密码加密传输
    springboot2.0 快速集成kafka
    原来自定义模型绑定器还可以这么玩
    Value cannot be null or empty. 参数名: contentPath
  • 原文地址:https://www.cnblogs.com/xxeleanor/p/15126207.html
Copyright © 2020-2023  润新知