標籤:虛擬 ring 屬性 生命週期 const 字串 傳遞 ide 版本
1註解:Annotation註解,是一種代碼層級的說明。它是JDK1.5及以後版本引入的一個特性,與類、介面、枚舉是在同一個層次,給電腦,JVM提供解讀資訊的.
2註解的作用:編譯檢查:程式碼分析,編寫文檔:
註解的範圍:可以定義在類上,方法上,代碼上
同一個位置只能使用一次,同一個註解
常用註解:
@Deprecated可以用來修飾類,表示已經過時的類;也可以用來修飾方法,表示已經過時的方法
@Override:用來測試方法是否為重寫的方法
JDK1.5時,@Override只能檢測類繼承類重寫的方法
* JDK1.6及以上,@Override即能檢測類繼承類重寫的方法,又能檢測類實現介面重寫的方法
@SuppressWarnings 表示抑制警告,被修飾的類或方法如果存在編譯警告,將被編譯器忽略
deprecation ,或略過時rawtypes ,忽略型別安全
unused ,忽略不使用unchecked ,忽略安全檢查
null,忽略null 指標serial, 忽略序號all,忽略所有
自訂註解
定義註解使用關鍵字: @interface
註解的屬性相當於類中的成員變數和成員方法
屬性格式:修飾符 傳回值類型 屬性名稱() [default 預設值]
修飾符:預設值 public abstract ,寫不寫都是public abstract。
傳回值類型:基本類型、字串String、Class、註解、枚舉,以及以上類型的一維數組
屬性名稱:自訂
default 預設值:[default 屬性值]可以省略,[]不寫入程式中
元註解
元註解:用來修飾自訂註解的JDK提供的註解
@Retention 用於確定被修飾的自訂註解生命週期如果注釋型別宣告中不存在 Retention 注釋,則保留原則預設為
RetentionPolicy.CLASS
RetentionPolicy.SOURCE 被修飾的註解只能存在源碼中,位元組碼class沒有。用途:提供給編譯器使用。
RetentionPolicy.CLASS 被修飾的註解只能存在源碼和位元組碼中,運行時記憶體中沒有。用途:JVM java虛擬機器使用
RetentionPolicy.RUNTIME 被修飾的註解存在源碼、位元組碼、記憶體(運行時)。用途:取代xml配置
@Target 用於確定被修飾的自訂註解使用位置
如果注釋型別宣告中不存在 Target 元注釋,則聲明的類型可以用在任一程式元素上。
ElementType.TYPE 修飾類、介面
ElementType.CONSTRUCTOR 修飾構造
ElementType.METHOD 修飾方法
ElementType.FIELD 修飾欄位
自訂註解的解析
自訂註解的解析:使用自訂註解,擷取自訂註解的屬性值
和解析有關的介面:
*java.lang.reflect.AnnotatedElement介面
*所有已知實作類別:
* AccessibleObject, Class, Constructor, Field, Method, Package
*介面中的方法:
*boolean isAnnotationPresent(Class annotationClass)
*如果指定類型的注釋存在於此元素上,則返回 true,否則返回 false。
*判斷(Constructor, Field, Method...)有沒有指定的註解
*參數:註解的class檔案對象,可以傳遞
MyAnnotation03.class(String.class,int.class)
*T getAnnotation(Class<T> annotationClass)
*如果存在該元素的指定類型的注釋,則返回這些注釋,否則返回 null。
*擷取(Constructor, Field, Method...)上的註解,參數傳遞的是哪個註解的class檔案對象,就擷取哪個註解
*參數:註解的class檔案對象,可以傳遞MyAnnotation03.class
JavaEE之註解