2013-07-30 86 views
0

我對Java很新,在java教程中,它使用術語「class literal」和「reflection」。Java類文字和反射?

從從Java網站,http://docs.oracle.com/javase/tutorial/reflect/index.html反射API線索,它說

擴展性功能 應用程序可以充分利用其創建擴展對象的實例利用外部的,用戶定義的類合格的名字。

這是什麼意思?

謝謝。

+0

請參閱[什麼是Java中的類文字?](http://stackoverflow.com/questions/2160788/what-is-a-class-literal-in-java) – Joe

回答

2

類文字類似於String.class,即代表String類的編譯時文字。簡而言之,反射是一種語言功能,可以讓你「反映」代碼,也就是說,你可以查詢系統的類,方法,字段等,並使用該數據創建新的實例,調用方法或改變字段的值。

反射對於創建在編譯時不知道但在運行時位於類路徑中的類的對象可能很有用。幾個擴展框架利用它,主要是通過在某些文本文件中提供完全合格的類名(例如com.acme.SomeFancyClass),從類加載器獲取關聯的Class對象並創建新實例。其他框架(例如,Apache Common的構建器對象,OGNL,Java Bean等)使用反射來查詢可以訪問的可用屬性(獲取器和/或匹配設置器)(通過調用這些獲取器/設置器)。但是,如果您是Java的新手,我建議您先深入其他語言功能,然後再在思考工具的深處放鬆自己。