反射和註解

2021-10-07 16:42:42 字數 1099 閱讀 3688

類名.class:通過類名的屬性class獲取

物件.getclass():getclass()方法在object類中定義著。

結論:同乙個位元組碼檔案(*.class)在一次程式執行過程中,只會被載入一次,不論通過哪一種方式獲取的class物件都是同乙個。

獲取功能:

獲取成員變數們

獲取構造方法們

獲取成員方法們:

獲取全類名

field:成員變數

操作:設定值

獲取值忽略訪問許可權修飾符的安全檢查

method:方法物件

獲取方法名稱:

作用分類:

①編寫文件:通過**裡標識的註解生成文件【生成文件doc文件】

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

③編譯檢查:通過**裡標識的註解讓編譯器能夠實現基本的編譯檢查【override】

jdk中預定義的一些註解

自定義註解

屬性:介面中的抽象方法

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

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

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

陣列賦值時,值使用{}包裹。如果陣列中只有乙個值,則{}可以省略

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

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

@retention(retentionpolicy.runtime):當前被描述的註解,會保留到class位元組碼檔案中,並被jvm讀取到

@documented:描述註解是否被抽取到api文件中

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

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

獲取註解定義的位置的物件 (class,method,field)

獲取指定的註解

呼叫註解中的抽象方法獲取配置的屬性值

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

2. 註解給誰用? 編譯器 給解析程式用

3. 註解不是程式的一部分,可以理解為註解就是乙個標籤

反射和註解

反射 通過乙個類的 類物件 可以使用它自身的方法,來建立例項,呼叫成員 1.獲得 類物件 方法區中,載入所有的類,都是乙個class型別的物件 class.forname string 類名 類名為全稱 類名.class 物件.getclass 2.反射建立例項 class c class.forn...

註解和反射

1 annotation是從jdk5.0開始引入的新技術。2 annotation的作用 1 不是程式本身,可以對程式做出解釋 2 可以被其他程式 比如 編譯器等 讀取 3 annotaion的格式 1 註解是以 注釋名 在 中存在的,還可以新增一些引數值 例如 suppresswarnings v...

註解和反射使用

作用 註解是附加在 中的一些資訊,用於編譯 執行時解析和使用,起到說明配置作用 主要學習兩方面1 元註解,2 自定義註解 一 元註解 包括 1.target,2.retention 3.documented,4.inherited 幾種 1 target 作用 用於描述註解的使用範圍 即 註解是描述...