我正在检索,并从外部源复制一个相当大的文件夹对象集合。它们都有一个文件夹ID和一个父文件夹ID,但不是以树结构的形式出现的。在检索它们之后,我将它们组织到树节点对象中,并使用顶级根目录。但是,一个或多个文件夹会创建一个循环引用,并且我无法确定如何查明位置。我如何在大量对象中精确定位循环对象引用?
Java在创建循环引用时不会引发任何错误。在将它发送到Web应用程序的客户端之前,当我尝试将其编码为json格式时,该错误会出现一个stackoverflow错误。因为错误是我第一次看到的,所以我根本看不出哪个对象是错误的原因。
在这个特殊的问题中,我失去了一个策略。是否有任何标准化的或好的方法来识别循环对象引用,就像我的情况那样?
一个文件夹可以有多个父项吗?你谈论文件夹对象。它是父子关系或文件夹对象的集合吗? – Persixty
只有一位家长。我发现错误是在我自己的精炼代码中,而不是在对象引用中。 – KjetilNordin
我想知道。如果每个节点只有一个父节点,我不确定你是如何构建对象树的。除非找到所有的根节点,然后继续添加父节点已经实例化的节点,否则很难做到这一点。如果存在循环,则会在树中没有父节点的节点结束。那是因为他们形成循环。循环几乎弹出算法的结尾。 – Persixty