Class.forName()是Java反射機制中的一個方法,它的作用是根據類的全限定名(包括包名和類名)動態加載類,返回對應的Class對象。
它的用法如下:
這種用法會返回指定類名對應的Class對象。如果類不存在或無法訪問,會拋出ClassNotFoundException異常。
除了指定類名外,還可以通過第二個參數來指定是否對類進行初始化操作,第三個參數用于指定類加載器。
通過Class.forName()方法加載一個類后,可以通過Class對象獲取該類的各種信息,比如類名、包名、方法、字段等。另外,它也可以用于創建對象、調用類中的方法等。
Class.forName()方法常用于以下場景:
動態加載類:在運行時根據一些條件來確定要加載的類。
加載數據庫驅動程序:在使用JDBC連接數據庫時,可以使用Class.forName()方法來加載數據庫驅動程序。
加載配置文件中的類:可以在配置文件中指定要加載的類名,然后使用Class.forName()方法來加載類。
需要注意的是,在Java 9之后,推薦使用Class.forName(String className)的替代方法:Class.forName(String className, boolean initialize, ClassLoader loader)。
這是因為在新版本中,Class.forName(String className)方法被定義為無效的,并且總是返回null。