Class.forName()
是 Java 中用于动态加载类的一种方法。它允许你在运行时加载和实例化一个类,而不需要在编译时知道这个类的名称。这对于插件系统、框架和库等场景非常有用,因为它们可以在运行时动态地加载和使用其他类。
Class.forName()
方法的签名如下:
public static Class<?> forName(String className) throws ClassNotFoundException
参数:
className
:要加载的类的完全限定名(包括包名)。返回值:
Class
对象。异常:
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
的类,然后创建一个新的实例。注意,这里我们使用了反射来调用类的默认构造函数。