Java基礎-類的反射之一

爲什麼要用反射

        Java程序中的許多對象在運行時都會出現兩種類型:編譯時類型和運行時類型,例如代碼:Person p = new Student();,這行代碼將會生成一個p變量,該變量的編譯時類型爲Person,運行時類型爲Student;除此之外,還有更極端的情形,程序在運行時接收到外部傳入的一個對象,該對象的編譯時類型是Object,但程序又需要調用該對象運行時類型的方法。

        爲了解決這些問題,程序需要在運行時發現對象和類的真實信息。解決該問題有以下兩種做法。

        第一種做法:假設在編譯時和運行時都完全知道類型的基本信息,在這種情況下,可以先使用instanceof運算符進行判斷,再利用強制類型轉換將其轉換成其運行時類型的變量即可。

        第二種做法:編譯時根本無法預知該對象和類可能屬於哪些類,程序只依靠運行時信息來發現該對象和類的真實信息,這就必須使用反射。

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