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



     

    一、概念

      注解(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 {
    }

  • 相关阅读:
    事务的隔离级别
    事务的隔离
    事务简介
    leetcode647
    leetcode394
    leetcode96
    leetcode814
    leetcode738
    leetcode621
    leetcode763
  • 原文地址:https://www.cnblogs.com/yuanshuai1026/p/11563383.html
Copyright © 2020-2023  润新知