java Class對象

今天專門看了下Java中Class 到底是個什麼東西。張張個人見識,我們知道Java在運行之前會把文件編譯成.class文件。對於每個.class文件都有一個Class對象和他對應,這個對象保存了.class文件中的類信息。你可以通過Class對象來獲取你想要的類信息。那麼如何來獲取Class對象呢,下面介紹幾種獲取Class對象的常用方法。

1. 如果在本類中,可以通過this.getClass();方法獲取。如:Class<?> clazz = this.getClass();

2. 通過對象實例獲取,如:Animal an = new Animal(); Class<?> clazz = an.getClass();

3. 通過Class.forName("xxx.xx.類名");

4. 通過對象.class的形式獲取。如:Class<Animal> clazz = Animal.class;


接下來我們可以根據獲取的Class對該類進行操作了,這裏也舉個例子吧,就用Class來創建新的實例吧。

創建實例一:含有默認構造函數的情況下。直接用newInstance();

創建實例二:在知道構造函數參數類型的情況下(當然構造函數參數類型可以通過Class獲取構造函數,然後獲取構造函數參數類型),這裏假設已經獲取到了class的構造函數參數類型。Animal  anl = clazz.getConstructor(String.class,Integer.class).newInstance();

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