天天看點

到底什麼是注解?一小段話最簡單描述

格式

public @interface 注解名稱{}。通俗講,注釋是給程式員看的描述資訊,注解是給計算機看的附加資訊

本質

public interface 注解名稱 extends java.lang.annotation.Annotation{},同上述紅色字型

注解本質是一個接口,繼承Annotation接口。假設,一個類添加了注解,在程式運作時,

1、首先擷取該類的位元組碼檔案。

2、根據注解,記憶體中會自動生成一個該注解接口的實作對象。

3、通過 getAnnotation( ) 方法擷取該對象。

4、通過注解對象調用注解方法。

代碼解釋

@注解名稱( 注解參數1, 注解參數2 )
public class Test{
    // 1、解析注解
    // 1、1 擷取該類的位元組碼檔案對象
    Class<Test> testClass = Test.class;
    
    // 2、擷取上面的注解對象
    // 本質上,在記憶體中生成一個該注解接口的子類實作對象
    /*
        public class 注解名稱Impl implements 注解名稱{
            public String 注解方法1(){
                return "注解參數1";
            }

            public String 注解方法2(){
                return "注解參數2";
            }
        }
    */

    注解名稱 an = testClass.getAnnotation(注解名稱.class);

    // 3、調用注解中的方法擷取屬性值
    an.注解方法();
}
           

最終解釋

@注解名稱( 注解參數1, 注解參數2 )
           

根據以上注解格式

1、注解是一個接口

2、程式執行時,會自動在記憶體中生成一個注解接口的實作類注解名稱Impl

3、注解名稱Impl會根據以上注解格式 || @注解名稱( 注解參數1, 注解參數2 ) || 通過傳入參數的構造方法的方式産生一個 注解名稱Impl  的執行個體對象

4、根據該執行個體對象使用注解定義的方法

繼續閱讀