问题标签 [cyclic-reference]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1254 浏览

java - 使用 Ant 构建具有混合 Scala 和 Java 源文件的项目 - 非法循环引用错误

目前,我有一个现有的带有 Ant 构建的 Java 项目,我正在尝试设置它以使用混合源(Java 和 Scala)构建。

我有一个 Java 接口定义为 -public interface One<T extends Two<? super T>>

当我从 Ant build 运行 scalac 时,出现以下错误:

错误:涉及类型 T 的非法循环引用。

因为我希望 Scala 和 Java 类在我的项目中相互依赖,所以我首先运行 scalac 任务,然后在 Ant 构建中运行 javac。我的 scalac 块如下所示:

有没有办法解决这个问题?我无法修改 Java 代码,因为有大量其他代码在使用它。

我正在使用 Java 7 和 Scala 2.11.5


这是我最后看到的:

com.arif.One.java

com.arif.Two.java

com.arif.scala.Main.scala

构建.xml

从项目根目录中的命令行 - 执行“ant build”给出以下 -

0 投票
1 回答
49 浏览

scala - 循环引用特征的 Scala 类型错误

我无法让这段代码正常工作。我想制作一个特征,允许继承它的类有“孩子”,但显然,Child'ssetParent方法想要 a P,但得到 a Parent[P, C]

0 投票
1 回答
1164 浏览

go - 有没有办法用编码/gob 序列化循环数据结构?

我正在将神经网络库移植到 Go。我希望能够保存和恢复一个训练有素的网络,所以我试图直接序列化它。问题是,网络结构在其字段中包含循环(神经元 A 与神经元 B 有连接,神经元 B 与神经元 A 有连接)。每当我尝试使用 encoding/gob 序列化整个网络时,它都会因堆栈溢出而失败。

这是一个以相同方式中断的非常简单的代码示例:

http://play.golang.org/p/LrO0VlLnX4

除非重写库的整个结构以避免循环,有没有直接的方法来解决这个问题?

谢谢

0 投票
2 回答
129 浏览

c++ - C++ 循环依赖混淆与邻接表表示

很抱歉我对 C++ 缺乏经验,但我花了一些时间来解决循环依赖问题并因此提出这个问题。

我正在尝试用 C++ 表示邻接列表。

我有结构Node

我有我的Hash函子

我注意到Hash使用NodeNode使用Hash
If 出于本练习的目的,我想在一个文件中声明所有内容,我应该首先声明哪个文件。

我尝试对两者进行前向声明HashNode首先定义它们中的任何一个,但没有一个被编译。

PS:这不是作业,我正在尝试在线解决图算法难题

0 投票
1 回答
51 浏览

python - 将 A 类的实例分配给 A 类的成员是否是循环引用?

既然Yummie.instance是一个实例Yummie并且type(Yummie.instance) == Yummie是真的,那会是循环引用的一个例子吗?我应该更喜欢创建一个弱引用吗?但是,对于弱引用,它还需要另一个地方来存放Yummie实例,否则它会立即再次被删除。

0 投票
5 回答
1860 浏览

java - Is cyclic dependency between anonymous class and parent class wrong?

I have following snippet of code:

Theres is a cyclic dependency between anonymous LinkedHashMap class and Example class. Is this OK or not? Why not? Is it going to be nicely reclaimed by garbage collector?

0 投票
1 回答
1522 浏览

java - 构造函数注入的循环依赖

假设我有以下组件:

在此处输入图像描述

  • 生产者产生数字并向消费者发送消息
  • Producer 和 Consumer 都向 Monitor 发送消息
  • 监视器,随机说,决定生产/消费过程何时停止并向 Stopper 发送消息
  • Stopper 然后干净地停止生产者和消费者

我知道这在 Java 等可变语言中很容易实现。我也知道这可以通过允许接口的部分可变性来解决,例如这里描述的。

但是,即使可能,具有循环依赖关系也不是一个好习惯。所以,让我们假设所有引用都是构造函数注入的并且是最终的:

  • 生产者有final Consumerfinal Monitor
  • 消费者有final Monitor
  • 显示器有final Stopper
  • 塞子有final Producerfinal Consumer

我找到了这样的参考资料但它们似乎并不适用。

一般而言,如何取消循环这种情况以及诸如此类的情况?换句话说,我最感兴趣的是如何从设计的角度完成不形成循环。有什么提示吗?

0 投票
1 回答
192 浏览

ruby-on-rails - 制造宝石循环依赖

fabrication使用gem时,我有一个循环依赖。在这里,我将向您展示我所做的。假设我有 2 个模型:

因此,他们的制造商将是:

好像没事吧?但是当我运行Fabricate(:user)或者Fabricate(:message)我得到循环依赖时,因为消息的制造会制造新用户,制造新用户会为他制造消息等等。我怎样才能避免这个恶魔般的圈子?

0 投票
1 回答
424 浏览

perl - 防止 Perl 中的循环引用内存泄漏

我最近问了一个关于在 Perl 中覆盖对象和内存管理的问题。我收到的其中一个答案通知我,我最近编写的脚本可能有问题。

我有一个包含一些非常复杂的数据结构的脚本,这些数据结构有很多parent->child / child->parent关系。这也意味着有许多对象具有循环引用。根据this answer,如果处理不当,循环引用可以“欺骗” Perl 的引用计数机制并导致内存泄漏。


循环引用示例:

免责声明——这不是我的史诗作品——感谢@Ikegami 提供了这个可爱的 ASCII 图表!

问题:每个对象都有对另一个的引用。. . 这意味着一旦超出范围,Perl 的引用计数器仍然认为对每个对象的引用都存在,因此永远不会释放内存$parent$child你最终在内存中有两个对象,无法访问它们中的任何一个的数据!


我的问题是: 处理循环引用以确保 Perl 正确处理其清理的正确方法是什么?当对自引用对象的所有外部引用都被消除时,如何确保 Perl 不会留下任何碎片?

0 投票
2 回答
215 浏览

perl - 使用 Scalar::Util 的弱化会导致无效引用问题吗?

请参阅此相关问题以获取一些背景信息。

注意:当我说“无效引用”时,我指的是没有指向数据的引用。


假设我们有以下包含循环引用的数据结构:

我知道我可以使用Scalar::Util'sweaken函数来“弱化”引用。. . 但是,如果我削弱了来自的引用parent->child并削弱了来自的引用child->parent,然后其中一个$child$parent超出范围,但不是另一个,会发生什么?

示例: $parent超出范围,因此引用消失了。


如果我这样做了,然后“父对象”超出范围,是否会因为 Perl 对该对象的内部引用计数变为 0 而从内存中删除父对象?我问这个,因为如果$child仍然存在并且需要使用来自父对象的一些数据,这会导致问题,因为子对象现在将持有指向父对象的无效指针。