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

时间:2011-04-26 20:29:15

标签: java classloader

所以我通过在没有问题的情况下搜索jar文件创建了一个类的实例,我将它设置为使用c.newInstance()创建一个实例(实例是在这里使用的正确单词吗?)

稍后在程序中,如果发生某个事件,我可能想要创建该类的另一个实例。如何在不找到所有Jar文件的情况下创建它,直到找到合适的文件然后再创建它?如果我仍然有对第一个的引用,有没有办法以某种方式创建它?

请假设我不知道将在运行时加载的类的名称,并且将会加载多个类。

由于

2 个答案:

答案 0 :(得分:4)

保存对对象类的引用

Class c = dynamicObject.getClass();

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

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

否则,说有一个带有int的consturctor,你可以做

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

答案 1 :(得分:2)

假设“x”是您创建的对象......

x.getClass().newInstance();