📅  最后修改于: 2023-12-03 15:32:01.810000             🧑  作者: Mango
在Java中,类 forName()
方法是一个非常强大的反射机制工具。它允许我们通过类名在运行时动态地创建一个类对象,从而可以在程序运行时才确定需要实例化的对象的类型。
以下是Class.forName()
方法签名:
public static Class<?> forName(String className) throws ClassNotFoundException
返回该名称所指定的类。
以下是一个简单的Java程序示例,演示如何使用 forName()
方法来实例化对象:
import java.lang.reflect.InvocationTargetException;
class MyClass {
public void display() {
System.out.println("Hello, World!");
}
}
public class ClassForNameDemo {
public static void main(String[] args) {
try {
Class<?> cls = Class.forName("MyClass");
MyClass obj = (MyClass) cls.getDeclaredConstructor().newInstance();
obj.display();
} catch (ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e) {
e.printStackTrace();
}
}
}
输出:
Hello, World!
在上面的示例中,我们首先使用 Class.forName()
方法加载类“ MyClass
”。在成功加载类之后,我们使用 getDeclaredConstructor()
方法获取该类的默认构造函数,并使用 newInstance()
方法创建类的实例。最后,我们调用 display()
方法打印输出。
forName()
方法尤其适用于需要动态加载和实例化类的场景。以下是一些常见的用例:
forName()
方法可以用来动态加载驱动程序类。这篇文章介绍了 forName()
方法的用法和用例。它不仅可以帮助您动态加载类和创建对象,还可以在程序运行时动态地控制类的行为。