• 注解定义、基本语法和属性



     

    一、概念

      注解(Annotation)是给程序(例如javac,框架等)提供某些的信息,而注释(Comment)是给程序员提供信息。

    二、定义基本语法

    • 定义
    public @interface Anno01 {
        public static final double PI=3.14;
        //语法是方法,但是使用上叫属性----注解的属性
        public String name();
        
    }
    • 使用
    public @interface Anno01 {
        public static final double PI=3.14;
        //语法是方法,但是使用上叫属性----注解的属性
        public String name();
        
    }

    三、属性

    •  属性的返回值类型
    @Retention(RetentionPolicy.RUNTIME)
    public @interface Anno01 {
        public void test();    //属性的返回值不能是任意类型,void会报错
    }
    • 属性可以有默认值
    1. 定义
    ublic @interface Anno03 {
      public String attr1();//木有默认值
      public String attr2() default "dasb";//有默认值
      public String[] attr3();//默认默认值
      public String[] attr4() default {"sb1","sb2"};//
    }

      2. 使用

    @Anno03(attr1= {"jhjh"},attr3= "gssf")      //没有默认值必须要为其赋值,有默认值可以重新为其赋值
    public class test01 {
        public static void main(String[] args) {     
        }
    }
    • 一维数组属性

        1. 定义

    public @interface Anno04 {
        public String[] attr();
    }

        2. 赋值

    @Anno04(attr="sb1")      //如果值得数组就有一个元素,可以省略大括号,加上也可以
      public class Test05 {
    }

    @Anno04(attr={"sb1","sb2"})    //多个值必须用大括号括起来,数组若没有值用空大括号。

      public class Test07 {

    }

     
    • 特殊属性名 value

        1. 定义

    public @interface Anno05 {
        public String value();
        public String attr() default "";
    }

        2. 赋值

    @Anno05("zhangsan")    //如果给value属性赋值可以省略value=,如果给多个属性赋值则不能省略
    public class Test11 {
    }

  • 相关阅读:
    box-sizing: border-box的作用
    什么时候用created,什么时候用mounted
    圣杯布局
    关闭浏览器 清除session
    js this
    js 深拷贝
    经常犯的一些小错误
    语法:c++对关于空指针0/NULL/nullptr三者的演变
    常用的函数
    C++一些小技巧
  • 原文地址:https://www.cnblogs.com/yuanshuai1026/p/11563383.html
Copyright © 2020-2023  润新知