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
的类,并创建了一个新的实例。