註解簡單API
https://github.com/fooloof/effective-java/tree/master/com-lzh-code/src/com/lzh/code/annotation
package com.lzh.code.annotation;
import java.lang.annotation.*;
/**
*RetentionPolicy.SOURCE 註解只在源碼階段保留,在編譯器進行編譯時它將被丟棄忽視。
* RetentionPolicy.CLASS 註解只被保留到編譯進行的時候,它並不會被加載到 JVM 中。
* RetentionPolicy.RUNTIME 註解可以保留到程序運行的時候,它會被加載進入到 JVM 中,所以在程序運行時可以獲取到它們
* */
@Retention(value = RetentionPolicy.RUNTIME)
/**----能夠將註解中的元素包含到 Javadoc 中------*/
@Documented()
/**
* ElementType.ANNOTATION_TYPE 可以給一個註解進行註解
* ElementType.CONSTRUCTOR 可以給構造方法進行註解
* ElementType.FIELD 可以給屬性進行註解
* ElementType.LOCAL_VARIABLE 可以給局部變量進行註解
* ElementType.METHOD 可以給方法進行註解
* ElementType.PACKAGE 可以給一個包進行註解
* ElementType.PARAMETER 可以給一個方法內的參數進行註解
* ElementType.TYPE 可以給一個類型進行註解,比如類、接口、枚舉
* */
@Target(value = ElementType.TYPE)
/**
*子類繼承父類的註解
* */
@Inherited()
/**
* Repeatable 自然是可重複的意思 1.8
* */
//@Repeatable(A_Repeatable.class)
public @interface A {
int id() default 0;
String name() default "nihao";
}