Java--注解


Java--注解

博客說明

文章所涉及的資料來自互聯網整理和個人總結,意在於個人學習和經驗匯總,如有什么地方侵權,請聯系本人刪除,謝謝!

說明

注解:說明程序的。給計算機看的

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

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

作用

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

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

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

JDK中預定義的一些注解

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

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

@SuppressWarnings:壓制警告, 一般傳遞參數all @SuppressWarnings("all")

自定義注解

格式
元注解
public @interface 注解名稱{
	屬性列表;
}
本質

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

  • public interface MyAnno extends java.lang.annotation.Annotation {}
屬性

接口中的抽象方法

  1. 屬性的返回值類型有下列取值
  • 基本數據類型
  • String
  • 枚舉
  • 注解
  1. 定義了屬性,在使用時需要給屬性賦值

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

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

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

元注解

用於描述注解的注解

  • @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. 調用注解中的抽象方法獲取配置的屬性值

感謝

黑馬程序員

以及勤勞的自己

關注公眾號: 歸子莫,獲取更多的資料,還有更長的學習計划


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM