轉自:
http://www.java265.com/JavaCourse/202205/3351.html
下文筆者講述Class.forName()方法的功能簡介說明,如下所示:
class物件簡介說明
class物件用于表示類 每一個類在JVM中都對應一個class物件 jvm中將使用class物件加入到類加載器中 注意事項: 1.java程式運行之前,并不會將所有的Class物件放入jvm中 2.每一個****.class類在jvm中只會對應一個Class實體物件 3.Class類只有一個私有建構式,并且Class物件只能由JVM創建和加載 4.Class類物件功能:運行時提供和獲取某個物件的型別資訊
獲得class物件的三種方法
1.呼叫Object類的getClass()方法來得到Class物件 如: ObjectTest t; Class c1 = t.getClass(); 2、使用Class類的中靜態forName()方法獲得與字串相應的Class物件 如: Class c2=Class.forName("ObjectTest") ObjectTest:須是介面或類的名字 class.forname()語法: Class c=Class.forName("類的全限定名") 3、直接使用類名的class 如: Class c3 = User.class; Class c4 = int.class; Class c5 = Double[].class;
class的功能和方法
Class.forName(xxx.xx.xx):
回傳的是一個類
Class.forName(xxx.xx.xx)的功能:
JVM查找并加載指定的類,也就是說JVM會執行該類的靜態代碼段
Class.forName是一個靜態方法,相同能夠用來載入類
Class.forName語法:
Class.forName(String name, boolean initialize, ClassLoader loader)
或
Class.forName(String className)
name:類的全名,initialize:是否初始化類,loader:載入時使用的類載入器
另外一種形式則相當于設定了參數 initialize的值為 true,loader的值為當前類的類載入器
Class.forName()應用場景簡介
A a = (A)Class.forName(“pacage.A”).newInstance(); 效果等同于 A a = new A();
newInstance和new關鍵字的區別
Java中工廠模式常使用newInstance()方法來創建物件 如 class c = Class.forName(“Example”); factory = (ExampleInterface)c.newInstance(); 其中ExampleInterface是Example的介面,也寫成如下形式: String className = “Example”; class c = Class.forName(className); factory = (ExampleInterface)c.newInstance(); ----或------ String className = readfromXMlConfig;//從xml 組態檔中獲得字串 class c = Class.forName(className); factory = (ExampleInterface)c.newInstance(); 注意事項: 1.使用newInstance()方法時,這個類已經加載連接 而使用new關鍵字時,這個類可以沒有被加載 2.newInstance: 弱型別,低效率,只能呼叫無參構造, new: 強型別,相對高效,能呼叫任何public構造, 3.Class.forName(“”)回傳的是類, Class.forName(“”).newInstance()回傳的是object
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/484469.html
標籤:Java
下一篇:mybatis-plus筆記
