前言
本文主要給大家介紹的是關于Java通過Class類獲取Class對象的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹:
閱讀API的Class類得知,Class 沒有公共構造方法。Class 對象是在加載類時由 Java 虛擬機以及通過調用類加載器中的 defineClass 方法自動構造的
獲取Class對象的三種方式(實例采用Person類)
方式1:通過Object類的getObject()方法
1
2
|
Person p = new Person(); Class c = p.getClass(); |
方式2: 通過 類名.class 獲取到字節碼文件對象(任意數據類型都具備一個class靜態屬性,看上去要比第一種方式簡單)。
1
|
Class c2 = Person. class ; |
方式3: 通過Class類中的方法(將類名作為字符串傳遞給Class類中的靜態方法forName即可)?!?/strong>
1
|
Class c3 = Class.forName( "Person" ); |
注意:第三種和前兩種的區別
前兩種你必須明確Person類型.
后面是指定這種類型的字符串就行.這種擴展更強.我不需要知道類名.我只提供字符串,按照配置文件加載就可以了
代碼演示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
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); } } |
1
2
3
|
class Person{ } |
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。
原文鏈接:http://www.cnblogs.com/17shiqi/p/7442358.html