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
的类,然后创建一个新的实例。注意,这里我们使用了反射来调用类的默认构造函数。