【Java基礎】反射篇

前言:java如何在運行時識別對象和類的信息.有兩種實現方式

  1. 傳統RTTI

  2. 反射

RTTI和反射有什麼區別?

對RTTI來說,編譯器在編譯時打開和檢查.class文件而反射機制來說,.class文件在編譯時是不可獲取得,所以在運行時打開和檢查.class文件()

反射是框架設計的靈魂

原理:反射首先是能夠獲取到Java中的反射類的字節碼,然後將字節碼中的方法,變量,構造函數等映射成 相應的 Method、Filed、Constructor 等類

應用:取出類的modifiers,數據成員,方法,構造器,和超類
找出某個接口裏定義的常量和方法說明.
取得和設定對象數據成員的值,如果數據成員名是運行時刻確定的也能做到.
在運行時刻調用動態對象的方法.

一、反射的概述
JAVA反射機制是在運行狀態中,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任意一個對象,都能夠調用它的任意一個方法和屬性;這種動態獲取的信息以及動態調用對象的方法的功能稱爲java語言的反射機制。
要想解剖一個類,必須先要獲取到該類的字節碼文件對象。而解剖使用的就是Class類中的方法.所以先要獲取到每一個字節碼文件對應的Class類型的對象.

二 反射的作用
總結:通過Class類與java.lang.reflect類庫一起對反射進行支持
反射的使用網上教程很多,研究Class類,Filed,Method,Constructor,Modifier類即可掌握反射

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章