一、Class.forName("").newInstance();
1. Class.forName( )靜態方法的目的是為了動態加載類(初始化類)。在加載完成后,一般還要調用Class下的newInstance( )靜態方法來實例化對象以便操作。因此,單單使用Class.forName( )是動態加載類是沒有用的,其最終目的是為了實例化對象。
2. newInstance: 弱類型。低效率。只能調用無參構造。
new: 強類型。相對高效。能調用任何public構造。
二、Class類的常用方法
1、getName()
以 String 的形式返回此Class對象所表示的實體(類、接口、數組類、基本類型或 void)名稱。
2、newInstance()
為類創建一個實例。例如:
xxx.getClass.newInstance(),創建了一個同x一樣類型的新實例。newInstance()方法調用默認構造器(無參數構造器)初始化新建對象。
Class.forName(c.getName()).newInstance();
3、getClassLoader()
返回該類的類加載器。
4、getComponentType()
返回表示數組組件類型的 Class。
5、getSuperclass()
返回表示此 Class 所表示的實體(類、接口、基本類型或 void)的超類的 Class。
6、isArray()
判定此 Class 對象是否表示一個數組類。