Java反射——獲取Class對(duì)象

Java語言中的反射機(jī)制是一個(gè)對(duì)開發(fā)者很有用的機(jī)制,它可以幫助開發(fā)者設(shè)計(jì)出優(yōu)越的框架,大大提高開發(fā)的效率。

反射機(jī)制的入口為Class對(duì)象,那如何才能獲取到Class對(duì)象呢?
方法有以下三種:

  • 類.class
  • 對(duì)象.getClass()
  • Class.forName("className")

類.class

這種方式最直接,但僅能獲取到我已知的類的Class對(duì)象,也就是工程內(nèi)用過的類的對(duì)象都可以通過類.class方式獲取其Class對(duì)象,但是這種方式有一個(gè)不足就是對(duì)于未知的類,或者說不可見的類是不能獲取到其Class對(duì)象的。

對(duì)象.getClass()

Java中的祖先類Object提供了一個(gè)方法getClass()來獲取當(dāng)著實(shí)例的Class對(duì)象,這種方式是開發(fā)中用的最多的方式,同樣,它也不能獲取到未知的類,比如說某個(gè)接口的實(shí)現(xiàn)類的Class對(duì)象。

Class.forName("className")

這種方式是可以獲取到任何類的Class對(duì)象,前提是該類存在,否則會(huì)拋出ClassNotFoundException異常。通過這種方式,我們只需要知道類的名稱(完全限定名)即可獲取到其Class對(duì)象(如果存在的話)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,745評(píng)論 18 399
  • Java的Class類是java反射機(jī)制的基礎(chǔ),通過Class類我們可以獲得關(guān)于一個(gè)類的相關(guān)信息,下面我們來了解一...
    jiangmo閱讀 976評(píng)論 0 3
  • 1. 了解 Java 中的反射 1.1 什么是 Java 的反射 Java 反射是可以讓我們?cè)谶\(yùn)行時(shí)獲取類的函數(shù)、...
    Ten_Minutes閱讀 584評(píng)論 0 4
  • 一:java概述:1,JDK:Java Development Kit,java的開發(fā)和運(yùn)行環(huán)境,java的開發(fā)工...
    ZaneInTheSun閱讀 2,816評(píng)論 0 11
  • 學(xué)習(xí)Android的同學(xué)注意了?。。W(xué)習(xí)過程中遇到什么問題或者想獲取學(xué)習(xí)資源的話,歡迎加入Android學(xué)習(xí)交流群...
    kingZXY2009閱讀 356評(píng)論 0 0

友情鏈接更多精彩內(nèi)容