Class.forName()
是 Java 反射機制中的一個方法,它的主要作用是加載并返回與給定字符串名稱對應的類或接口的 Class
對象。這個方法在以下場景中非常有用:
Class.forName()
方法。例如,從數據庫或配置文件中讀取類名,然后使用 Class.forName()
加載并實例化該類。Class.forName()
方法可以確保在實際需要使用該類之前,不會觸發靜態塊的執行。這在某些情況下可以提高性能,例如當類的靜態塊包含復雜的初始化操作或者需要大量資源時。Class.forName()
方法允許你通過字符串名稱訪問這些類。需要注意的是,Class.forName()
方法可能會拋出 ClassNotFoundException
,因此在使用時需要進行異常處理。
示例代碼:
try {
Class<?> clazz = Class.forName("com.example.MyClass");
Object instance = clazz.getDeclaredConstructor().newInstance();
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e) {
e.printStackTrace();
}
在這個示例中,我們使用 Class.forName()
方法加載名為 com.example.MyClass
的類,并創建了一個新的實例。