java語言爲何要實現反射?反射實現的意義何在?

1.概念java

        反射的概念 在運行狀態中,對於任意一個類,都可以知道這個類的全部屬性和方法;對於任意一個對象,都可以調用它的任意一個方法;這種動態獲取信息以及動態調用對象方法的功能稱爲JAVA語言反射機制。 spring

2.爲何要實現反射?框架

        咱們知道,java程序中許多對象在運行時都會出現兩種類型:編譯時類型和運行時類型,編譯時類型由聲明該對象時使用的類型決定,運行時類型由實際賦給對象的類型決定,例如:Pet pet=new Dog(),此時對象pet的編譯時類型是pet運行時類型是Dog,由於只有在程序運行的時候才能知道平pet引用的內容改成了Dog,因此稱之爲運行時類型。 除此以外,程序運行時還可能接收到外部傳入的一個對象,該對象的編譯類型是object,但程序又須要調用該對象運行時類型的方法。爲了解決這些問題,程序須要在運行時發現對象和類的真實信息。然而,若是編譯時根本沒法預知該對象的類可能屬於哪些類,程序只依靠運行時信息來發現該對象和類的真實信息,此時必須使用反射。spa

3.實現功能對象

        反射的概念 在運行狀態中,對於任意一個類,都可以知道這個類的全部屬性和方法;對於任意一個對象,都可以調用它的任意一個方法;這種動態獲取信息以及動態調用對象方法的功能稱爲JAVA語言的反射機制。 get

Java反射的三個動態性質: 編譯

一、運行時生成對象實例。object

 二、運行期間調用方法。引用

 三、運行時更改屬性。反射

 Java反射能夠實現的功能: 

一、在運行時判斷任意一個隨想所屬的類。

 二、在運行時構造任意一個類的對象。 

三、在運行時判斷任意一個類所具備的屬性和方法。 

四、在運行時調用任意一個對象的方法。

包括在spring系列框架中實現的控制反轉和注入依賴

相關文章
相關標籤/搜索