Class.forName(str); 使用案例
时间: 2024-03-20 22:40:57 浏览: 55
Class.forName(str)是Java中一种用于动态加载类的方法。它接受一个字符串参数str,该参数指定要加载的类的全限定名。如果指定的类尚未加载,则会调用ClassLoader的loadClass方法进行查找和加载。如果成功加载,则返回该类的Class对象,否则会抛出ClassNotFoundException异常。
以下是一个使用Class.forName(str)动态加载类的简单例子:
```
public class Main {
public static void main(String[] args) throws Exception {
// 定义要加载的类的全限定名
String className = "com.example.MyClass";
// 使用Class.forName动态加载类
Class<?> myClass = Class.forName(className);
// 创建该类的实例
Object myObject = myClass.newInstance();
// 调用该类的方法
myClass.getMethod("myMethod").invoke(myObject);
}
}
// 要动态加载的类
class MyClass {
public void myMethod() {
System.out.println("Hello, world!");
}
}
```
在上面的例子中,我们定义了一个要加载的类的全限定名为"com.example.MyClass",然后使用Class.forName方法动态加载该类。在加载成功后,我们创建了该类的实例,并调用了它的方法"myMethod",最终输出了"Hello, world!"。需要注意的是,使用Class.forName方法动态加载类时,类的静态初始化代码块也会被执行。
阅读全文