您好,登錄后才能下訂單哦!
前言
本文主要給大家介紹的是關于Java通過Class類獲取Class對象的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹:
閱讀API的Class類得知,Class 沒有公共構造方法。Class 對象是在加載類時由 Java 虛擬機以及通過調用類加載器中的 defineClass 方法自動構造的
獲取Class對象的三種方式(實例采用Person類)
方式1:通過Object類的getObject()方法
Person p = new Person(); Class c = p.getClass();
方式2: 通過 類名.class 獲取到字節碼文件對象(任意數據類型都具備一個class靜態屬性,看上去要比第一種方式簡單)。
Class c2 = Person.class;
方式3: 通過Class類中的方法(將類名作為字符串傳遞給Class類中的靜態方法forName即可)。
Class c3 = Class.forName("Person");
注意:第三種和前兩種的區別
前兩種你必須明確Person類型.
后面是指定這種類型的字符串就行.這種擴展更強.我不需要知道類名.我只提供字符串,按照配置文件加載就可以了
代碼演示:
public class ReflectDemo { public static void main(String[] args) throws ClassNotFoundException { //通過Object類的getObject()方法 Person p = new Person(); Class c1 = p.getClass(); System.out.println(c1); //類名.class 獲取到字節碼文件對象 Class c2 =Person.class; System.out.println(c2); //通過Class類中的方法forName() Class c3 = Class.forName("cn.shiqi.demo1.Person"); System.out.println(c3); } }
class Person{ }
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。