java - 如何从两个具体类型的类中删除循环依赖

标签 java circular-dependency

我有两个类(class),如下:

public class A{
private String id ;
private SortedMap<String,B> answer = new TreeMap<String,B>();
private String text;
}

public class B{
private String id = null ;
private SortedMap<String,A> question = new TreeMap<String,A>();
private String text = null;
}

有什么方法可以消除上述类的循环依赖..?

最佳答案

不,没有,但这没问题。

JAVA中循环依赖是没有问题的。如果您想在两个方向上遍历结构,那么拥有这些是很常见的。想象一棵树,其中父级和子级彼此了解,从而创建循环依赖。

垃圾收集器将检测循环依赖关系并很好地处理这个问题。

唯一的问题发生在两个构造函数中都有循环依赖关系时,这将导致堆栈溢出:)

关于java - 如何从两个具体类型的类中删除循环依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7239199/

相关文章:

c++ - 将耦合类拆分为单独的 header

javascript - Node.js 中如何处理互包含?

javascript - Node.js v.11.6.0 : How to resolve circular dependency?

java - 内部类中有变量

java - 创建操作栏时出现问题 "Caused by: java.lang.ClassNotFoundException: android.view.Item"

java - 从文本文件读取多个 JSON 对象

c++ - 如何解决 Boost::BGL 模板<->类循环依赖?

git - Centos 5.5 - 安装 Git 循环依赖

java - Oracle 中的批处理失败。找出批处理中的哪个语句导致它

java - 我无法导入 gradle 项目 Eclipse。 "Finish"按钮什么都不做