【发布时间】:2017-10-27 01:10:09
【问题描述】:
任何人都可以帮助解决我的应用程序中的这个循环依赖错误。
这是我的情况:我有 2 个类需要根据决策者值相互通信,但是如果我尝试在导致循环依赖错误的那些类中添加依赖关系,那么这 2 个类会留在不同的模块中。
我计划的示例功能将与此类似
class A {
void funA() {
System.out.print("Module A");
}
void Validate() {
boolean decider = true; // if true indicates belongs to Class A else B
if (decider) {
funA();
} else {
B b = new B();
b.funB();
}
}
private class B {
void funB() {
System.out.print("Module B");
}
void Validate() {
boolean decider = false;// if true indicates belongs to Class A else B
if (decider) {
funB();
} else {
A a = new A();
a.funA();
}
}
}
}
ClassA 位于 ModuleA 和 ClassB 内> 停留在 ModuleB 内,我如何通过创建新模块和移动通用功能来实现上述功能
【问题讨论】:
-
我尝试使用 validate() 代码添加另一个模块,但即使这样也会导致循环依赖,因为 ModuleC 需要 funA()、funB() 访问,而 funA() 与 moduleC 通信需要它的依赖
-
简而言之,重构你的代码和你的模块结构以避免模块之间的循环依赖。代码看起来如此模糊和不切实际,我们很难建议您应该如何重构
-
您真的需要在
A的validate()中实例化B(反之亦然)吗?
标签: java maven dependencies