1

我有一个 Java 项目(项目 A),我在其中加载了其他 jar。这些 jars(项目 B)都有一个类实现应用程序接口。为了知道该接口,项目 b 必须将项目 A 作为库。

现在,当启动项目 A 时,它会加载项目 B 的 jar,查找应用程序类,获取构造函数并尝试创建一个对象,但是失败了:B 类的构造函数创建了一个实现已知接口的对象项目 B,尽管这与项目 A 中的界面相同,但似乎这两者并不相同。

如何解决这种双重绑定依赖?

编辑:这就是我尝试在项目 A 中创建应用程序的方式:

clazz = Class.forName(className, true, loader);
ctor = (Constructor<? extends Application>) clazz.getConstructor();
Application app = ctor.newInstance();

异常发生在第三行,它说 app 的类型是 SpecificApplication(在加载的 jar 中定义并实现 Application 接口),因此不能转换为 Application。

4

1 回答 1

0

将接口放在另一个jar中,项目A和B都引用了该jar。

于 2013-08-29T20:27:17.533 回答