類名.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 作用 用於描述註解的使用範圍 即 註解是描述...