首頁 > Java > java教程 > 主體

Java反射的原理及其作用是什麼?

PHPz
發布: 2023-04-26 23:31:06
轉載
744 人瀏覽過

1.呼叫反射的流程

(1)準備階段:編譯期裝載所有的類,將每個類別的元資訊保存至Class類別物件中,每一個類別對應一個Class物件

(2)取得Class物件:呼叫x.class/x.getClass()/Class.forName() 取得x的Class物件clz(這些方法的底層都是native方法,是在JVM底層編寫好的,涉及到了JVM底層,就先不進行探究了)

(3)進行實際反射操作:透過clz物件取得Field/Method/Constructor物件進行進一步操作

2.取得class類別

要想透過反射取得一個類別的信息,首先要取得此類別對應的Class類別實例,Class類別的實例代表了正在運行中的Java應用的類別和介面。 Class類別沒有公共的建構方法,Class類別物件是在二進位位元組流(一般是.class文件,也可透過網路或zip套件等路徑取得)被JVM載入時,透過呼叫類別載入器的defineClass ()方法來建構的。

/**
 * Instances of the class {@code Class} represent classes and
 * interfaces in a running Java application.
 * {@code Class} has no public constructor. Instead {@code Class}
 * objects are constructed automatically by the Java Virtual Machine as classes
 * are loaded and by calls to the {@code defineClass} method in the class
 * loader.
*/
 
public final class Class<T> implements java.io.Serializable,GenericDeclaration,Type,AnnotatedElement {
    ......
}
登入後複製

以上是Java反射的原理及其作用是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!