📜  Java中的类 forName() 方法及示例(1)

📅  最后修改于: 2023-12-03 15:32:01.810000             🧑  作者: Mango

Java中的类 forName() 方法及示例

介绍

在Java中,类 forName() 方法是一个非常强大的反射机制工具。它允许我们通过类名在运行时动态地创建一个类对象,从而可以在程序运行时才确定需要实例化的对象的类型。

方法签名

以下是Class.forName()方法签名:

public static Class<?> forName(String className) throws ClassNotFoundException
返回值

返回该名称所指定的类。

参数
  • className:指定要加载的类名。
示例

以下是一个简单的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() 方法尤其适用于需要动态加载和实例化类的场景。以下是一些常见的用例:

  • 使用 JDBC 驱动程序连接数据库时,forName() 方法可以用来动态加载驱动程序类。
  • 当您有一个字符串表示的类名时,并且需要创建该类的实例时。
总结

这篇文章介绍了 forName() 方法的用法和用例。它不仅可以帮助您动态加载类和创建对象,还可以在程序运行时动态地控制类的行为。