java 註解定義

一個例子

@Target({ElementType.FIELD,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyTar {
	String name() default "";
	String other() default "";
	String[] type() default {"yangli","yinli"};
}

下面瞭解下在定義註解的4個註解含義java

註解 做用 參數
@Target 表示該註解能夠用在什麼地方 ElementType參數
@Retention 表示須要在什麼級別保存該註解信息 RetentionPolicy參數
@Documented 將註解包含在Javadoc中 無參數
@Inherited 容許子類繼承父類中的註解 無參數

ElementType參數數組

  1. TYPE:類、接口(包括註解類型)或enum聲明
  2. FIELD:域聲明(包括enum實例)
  3. METHOD:方法聲明
  4. PARAMETER:參數聲明
  5. CONSTRUCTOR:構造器的聲明
  6. LOCAL_VARIABLE:局部變量聲明
  7. ANNOTATION_TYPE:註解類型聲明
  8. PACKAGE:包聲明

還有兩種TYPE_PARAMETER 和TYPE_USE JDK1.8出來的微信

RetentionPolicy 參數.net

  1. SOURCE:註解將被編譯器丟棄
  2. CLASS:註解在class文件中可用,但會被VM丟棄
  3. RUNTIME:VM將在運行期間保留註解,所以能夠經過反射機制讀取註解的信息。

註解定義

  • 只能用public或默認(default)這兩個訪問權修飾.例如,String value();這裏把方法設爲defaul默認類型;
  • 參數成員只能用基本類型byte,short,char,int,long,float,double,boolean八種基本數據類型和 String,Enum,Class,annotations等數據類型,以及這一些類型的數組.例如,String value();這裏的參數成員就爲String; 
  • 若是隻有一個參數成員,最好把參數名稱設爲"value",後加小括號

歡迎關注個人微信公衆號cobs-snail,讓咱們一塊兒前進吧!!code

前進吧蝸牛

相關文章
相關標籤/搜索