java 动态加载类实现
时间: 2024-05-11 12:19:42 浏览: 6
在 Java 中,我们可以使用 Class 类的 forName() 方法来动态加载类。该方法可以接收一个字符串类型的参数,该参数表示要加载的类的完整类名。下面是一个简单的示例:
```java
public class DynamicClassLoadingExample {
public static void main(String[] args) {
try {
// 加载需要的类
Class<?> myClass = Class.forName("com.example.MyClass");
// 创建对象
Object myObject = myClass.newInstance();
// 调用方法
Method myMethod = myClass.getMethod("myMethod");
myMethod.invoke(myObject);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
```
在上面的示例中,我们首先使用 Class.forName() 方法加载了一个名为 "com.example.MyClass" 的类。然后,我们使用 newInstance() 方法创建了一个该类的对象。最后,我们使用 getMethod() 方法和 invoke() 方法来调用了该类的 myMethod() 方法。
需要注意的是,Class.forName() 方法会在运行时动态地加载类,因此该方法的参数必须是一个完整的类名,包括包名。如果要加载的类不在默认的类路径中,可以使用 ClassLoader 类来加载该类。