Java 註解和反射

-Kk發表於2020-11-20

1. 註解(Annotation)


一、作用

  • 可以被其他程式(比如:編譯器等)讀寫
  • 不是程式本身,可以對程式做出解釋。(這一點和註釋沒有區別)

二、格式

  • 註解是以“@註釋名”在程式碼中存在的,還可以新增一些引數值,例如:@SuppressWarnings(value="unchecked).

三、例子

public class Demo01 extends Object{
    // @Override 重寫的註解
    @Override
    public String toString() {
        return super.toString();
    }
}

四、內建註解

(1)Override

適用於修飾方法,表示一個方法宣告da’suan重寫超類中的另一個方法宣告。

(2)Deprecated

此註釋可以用於修飾方法、屬性、類、表示不鼓勵程式設計師使用這樣的元素。

(3)SuppressWarning

與前兩個不同,你需要新增一個引數才可以使用,這些引數都定義好了我們選擇性使用就好了。

  • @SuppressWarning(“all”)
  • @SuppressWarning(“unchecked”)
  • @SuppressWarning(value={“unchecked”,“deprecation”})

五、元註解

元註解的作用就是負責註解其他註釋,Java定義了四個標準的meta-annotation型別,他們被用來提供對其他annotation型別作說明
這些型別和它們所支援的類在java.lang.annotation包中可以找到(@Target,@Retention,@Documented,@Inherited)

  • @Target:表示描述註解的使用範圍(即:被描述的註解可以用在什麼地方)
  • @Retention:表示需要在什麼級別儲存該資訊,用於描述註解的生命週期(SOURCE<CLASS<RUNTIME)
  • @Document:說明該註解將被包含在javadoc中
  • @Inherited:說明子類可以繼承父類中的該註解
// Target 表示註解可以用在什麼地方
@Target(value = {ElementType.METHOD,ElementType.TYPE})

// Retention 表示我們的註解還有效
// RUNTIME>CLASS>SOURCE
@Retention(value= RetentionPolicy.RUNTIME)

// Documented 表示是否將我們的註解生成在JavaDoc中
@Documented

// Inherited 子類可以繼承父類的註解
@Inherited
@interface MyAnnotation{
}

相關文章