java基礎之註解的應用案例詳解

                                     java基礎加強之註解的應用

## 註解:

* 概念:說明程序的。給計算機看的

* 註釋:用文字描述程序的。給程序員看的

* 定義:註解(Annotation),也叫元數據。一種代碼級別的說明。它是JDK1.5及以後版本引入的一個特性,與類、接口、枚舉是在同一個層次。它可以聲明在包、類、字段、方法、局部變量、方法參數等的前面,用來對這些元素進行說明,註釋。

* 概念描述:

* JDK1.5之後的新特性

* 說明程序的

* 使用註解:@註解名稱

* 作用分類:

①編寫文檔:通過代碼裏標識的註解生成文檔【生成文檔doc文檔】

②代碼分析:通過代碼裏標識的註解對代碼進行分析【使用反射】

③編譯檢查:通過代碼裏標識的註解讓編譯器能夠實現基本的編譯檢查【Override】

* JDK中預定義的一些註解

* @Override :檢測被該註解標註的方法是否是繼承自父類(接口)的

* @Deprecated:該註解標註的內容,表示已過時

* @SuppressWarnings:壓制警告

* 一般傳遞參數all  @SuppressWarnings("all")

* 自定義註解

* 格式:

元註解

public @interface 註解名稱{

屬性列表;

}

 

* 本質:註解本質上就是一個接口,該接口默認繼承Annotation接口

* public interface MyAnno extends java.lang.annotation.Annotation {}

* 屬性:接口中的抽象方法

* 要求:

1. 屬性的返回值類型有下列取值

* 基本數據類型

* String

* 枚舉

* 註解

* 以上類型的數組

 

2. 定義了屬性,在使用時需要給屬性賦值

1. 如果定義屬性時,使用default關鍵字給屬性默認初始化值,則使用註解時,可以不進行屬性的賦值。

2. 如果只有一個屬性需要賦值,並且屬性的名稱是value,則value可以省略,直接定義值即可。

3. 數組賦值時,值使用{}包裹。如果數組中只有一個值,則{}可以省略

 

* 元註解:用於描述註解的註解

* @Target:描述註解能夠作用的位置

* ElementType取值:

* TYPE:可以作用於類上

* METHOD:可以作用於方法上

* FIELD:可以作用於成員變量上

* @Retention:描述註解被保留的階段

* @Retention(RetentionPolicy.RUNTIME):當前被描述的註解,會保留到class字節碼文件中,並被JVM讀取到

* @Documented:描述註解是否被抽取到api文檔中

* @Inherited:描述註解是否被子類繼承

 

* 在程序使用(解析)註解:獲取註解中定義的屬性值

1. 獲取註解定義的位置的對象  (Class,Method,Field)

2. 獲取指定的註解

* getAnnotation(Class)

//其實就是在內存中生成了一個該註解接口的子類實現對象

 

            public class ProImpl implements Pro{

                public String className(){

                    return "cn.itcast.annotation.Demo1";

                }

                public String methodName(){

                    return "show";

                }

            }

3. 調用註解中的抽象方法獲取配置的屬性值

實例:

      註解解析,用註解代替配置文件,解析註解信息

準備:測試運行類,測試類,自定義註解

測試類Demo1和Demo2

自定義註解:

測試運行類:

 

* 案例:簡單的測試框架

聲明:使用註解測試Caculator類

準備:

       簡單的計算器類,check註解,註解測試類

計算器類:

check註解

測試運行類

運行結果:

* 小結:

1. 以後大多數時候,我們會使用註解,而不是自定義註解

2. 註解給誰用?

1. 編譯器

2. 給解析程序用

3. 註解不是程序的一部分,可以理解爲註解就是一個標籤

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章