1. 程式人生 > >動態載入類並例項化物件

動態載入類並例項化物件

一、Class.forName("").newInstance();用於工廠真的是挺好的

1. Class.forName( )靜態方法的目的是為了動態載入類(初始化類)。在載入完成後,一般還要呼叫Class下的newInstance( )靜態方法來例項化物件以便操作。因此,單單使用Class.forName( )是動態載入類是沒有用的,其最終目的是為了例項化物件。
2. newInstance: 弱型別。低效率。只能呼叫無參構造。
   new: 強型別。相對高效。能呼叫任何public構造。

二、Class類的常用方法

1、getName() 
一個Class物件描述了一個特定類的屬性,Class類中最常用的方法getName以 String 的形式返回此 Class 物件所表示的實體(類、介面、陣列類、基本型別或 void)名稱。
2、newInstance()
Class還有一個有用的方法可以為類建立一個例項,這個方法叫做newInstance()。例如:
    x.getClass.newInstance(),建立了一個同x一樣型別的新例項。newInstance()方法呼叫預設構造器(無引數構造器)初始化新建物件。
    Class.forName(c.getName()).newInstance();
3、getClassLoader() 
返回該類的類載入器。
4、getComponentType() 
    返回表示陣列元件型別的 Class。
5、getSuperclass() 
    返回表示此 Class 所表示的實體(類、介面、基本型別或 void)的超類的 Class。
6、isArray() 
    判定此 Class 物件是否表示一個數組類。