注解定義、基本語法和屬性



 

一、概念

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

 

 

 


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM