java 动态加载类 并且new出对象 父类继承 BaseVo
在Java中,可以使用反射来动态加载类并创建对象。要实现这个功能,需要使用以下步骤:
- 使用
Class.forName()方法加载类。该方法接受一个类的完全限定名作为参数,并返回对应的Class对象。例如,如果要加载名为com.example.MyClass的类,可以使用以下代码:
Class<?> clazz = Class.forName("com.example.MyClass");
- 使用
clazz.newInstance()方法创建对象。该方法会调用类的默认构造函数来创建一个新的对象。如果类没有默认构造函数,或者默认构造函数不可访问,则会抛出InstantiationException异常。例如,可以使用以下代码创建一个MyClass对象:
Object obj = clazz.newInstance();
- 如果要创建的对象是一个子类,而不是父类,可以将对象强制转换为父类类型。例如,如果
MyClass是BaseVo的子类,可以使用以下代码将对象转换为BaseVo类型:
BaseVo baseVo = (BaseVo) obj;
完整的示例代码如下所示:
public class Main {
public static void main(String[] args) {
try {
Class<?> clazz = Class.forName("com.example.MyClass");
Object obj = clazz.newInstance();
BaseVo baseVo = (BaseVo) obj;
// 使用创建的对象
baseVo.method();
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {
e.printStackTrace();
}
}
}
请注意,上述代码中的com.example.MyClass是一个示例类名,你需要将其替换为你要加载的实际类的完全限定名。另外,如果要加载的类位于不同的包中,还需要添加相应的包名前缀。
原文地址: https://www.cveoy.top/t/topic/izjw 著作权归作者所有。请勿转载和采集!