java - 创建动态加载类的另一个实例 - Java

标签 java classloader

因此,我通过毫无问题地搜索 jar 文件创建了一个类的实例,我将其设置为使用 c.newInstance() 创建一个实例(这里使用实例是正确的词吗?)

稍后在程序中,如果某个事件发生,我可能想创建该类的另一个实例。我怎样才能创建这个而不必搜索所有 Jar 文件直到找到正确的文件然后再次创建它?如果我仍然有对第一个的引用,有没有办法以某种方式创建它?

请假设直到运行时我才知道将加载的类的名称,并且将加载多个类。

谢谢

最佳答案

保存对对象类的引用

Class c = dynamicObject.getClass();

你可以像这样创建一个新实例(假设有一个无参数构造函数)

Object anotherDynamicObject = c.newInstance(); // you can cast accordingly

否则,假设有一个接受 int 的构造函数,你可以这样做

Constructor constructor = c.getConstructor(int.class);
Object anotherDynamicObject = constructor.newInstance(1);

关于java - 创建动态加载类的另一个实例 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5796077/

相关文章:

java - Android Studio socket服务端与客户端收发数据

java - 怎么会找不到完整文件路径的文件呢?

java - 在 Java 中加载类有哪些不同的方法

java - 什么是用于检测 Java 代码中的 for 循环和 while 循环的正则表达式

java - Location.convert() 是否生成以逗号作为分隔符的值?

tomcat 8 从 tomcat 6 升级 - 类加载性能问题

java - 使用反射加载类时避免 ClassNotFoundException

java - ThreadLocal 垃圾回收

java - 为什么 Java 类加载器找不到我的接口(interface)?

java - Apache Tomcat - 读取生成的旧文件