问题标签 [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.
java - 如何从具有循环关系的数据集中形成一棵树?
我有这样的课:
现在,我在 ArrayList 中存储了大约两千个这样的“Foo”对象,从上面的代码片段可以看出,它们彼此相关。现在,这些关系可能是循环的:A 可能有一个孩子 B,可能有孩子 C,可能有孩子 A。我想要做的是打印出这些关系的树,同时忽略循环关系,如下所示:
我怎样才能做到这一点?它不必很快或任何东西,这棵树主要是为了确保我的程序的结果。
entity-framework - “引用关系会导致不被允许的循环引用。”
这是场景一,效果很好:
这是场景二,它失败了。
方案 2 中的错误消息如下: 引用关系将导致不允许的循环引用。[约束名称 = FK_dbo.GroupMembers_dbo.Persons_MemberId]
这两种情况都有这个映射(多对多),在 OnModelCreating 的方法中。
我究竟做错了什么?!我想要达到的目的是完全合理的
java - Java包之间的每个循环引用都是坏的吗?
我使用 Sonar 代码质量管理平台已经有一段时间了,在大多数情况下,我发现它对于揭示代码库中隐藏的设计缺陷非常有帮助。
然而,有一条规则比帮助更让我烦恼,那就是它检查“循环包引用”违规行为。
我想我完全理解包之间的这种依赖关系在哪里是一件坏事。例如,在典型的 3 层表示/服务/持久性分层设计中,让数据库处理代码引用回 UI 相关类几乎总是一个坏主意。我称其为“违规”没有问题。
但让我们考虑其他情况,例如设计类似 IDE 的应用程序。比如说,我们有一个包含Application
接口的主包,它定义List<View> Application.getViews()
了引用应用程序视图的方法。
然而,当View
接口有一个Application getApplication()
方法来引用它的父应用程序时,我相信这是一个很常见的设计,它会引入一个循环引用,前提是每个接口分别用com.myapp.ui
, 和分隔com.myapp.ui.view
。
当然,你也可以直接把View
接口放进com.myapp.ui
去打破循环。但是,当您在 中拥有各种其他与视图相关的 API 时com.myapp.ui.view
,其中许多是另一个抽象 API,例如AbstractView
、ContentView
、AbstractContentView
等。我想知道是否出于管理目的将它们放在单独的包中更为可取。
并且考虑到上述应用程序还有许多其他类似的情况,例如com.myapp.ui.action
,等,如果我们要将它们都放在那里com.myapp.ui.perspective
,这真的会使包变得拥挤。com.myapp.ui
那么,你建议用什么方法来处理这种情况呢?真的每个循环包都引用了一件坏事吗?或者如果我必须与他们一起生活,您如何配置 Sonar 以仅检查真实的、有问题的循环?
scala - 对象中值的初始化顺序:如何正确设置循环/递归对象?
以下代码
有效,如果访问信息的顺序是:
并且输出如预期:
真正存在的列:true
Tenant.id 作为 Tenant_id,Tenant.name 作为 Tenant_name
真正存在的列:true
Node.id 作为 Node_id,Node.tenantId 作为 Node_tenantId,Node.nodeId 作为 Node_nodeId,Node.name 作为 Node_name
但如果顺序颠倒,它会失败:
在这种情况下,输出是
真正存在的列:true
Node.id 作为 Node_id,Node.tenantId 作为 Node_tenantId,Node.nodeId 作为 Node_nodeId,Node.name 作为 Node_name
真正存在的列:假
列 List(null, null)线程“主”java.lang.NullPointerException 中的异常
使用 Scala 2.10.1
一些背景资料:
- 对象定义描述了 RDBMS 的逻辑数据模型。
- 表知道他们的列(子),每个列都知道他的表(父)
- 外键列具有描述父表中主键列的可选属性
- 这种关系可以是递归的(节点表是递归的)
- 表和列的单独常量是必需的。
- 如果可能的话,我想避免var
我在语言规范(5.4)中找到了一个部分
请注意,对象定义定义的值是惰性实例化的。
这实际上是能够设置它所必需的。我假设“价值”是指整个对象,与其“价值”(属性)相反。
无论如何,显然创建了 columns 属性的实例,但它的元素尚未“物化”,这在第二次运行的输出中可见。
我曾尝试使用早期定义来解决它,但在这种情况下,编译器会抱怨涉及 object 的非法循环引用,因此无法编译:
所以我的问题是:
- 为什么会失败?
- columns 属性处于哪个状态(列表存在,但元素为空)?
- 如何正确设置?或者由于它的循环/递归性质,我应该按照定义的顺序将它实现为一种解决方法吗?
更新/解决方案
基于 0__ 的回答:解决方案包括将 columns 属性声明为惰性并将抽象 val更改为def。
至于 columns 属性的状态:如果将-Xcheckinit放入 scalac 的命令行选项中,则会添加额外的运行时检查。在这种情况下,会出现以下错误:
引起:scala.UninitializedFieldError:未初始化字段:RecursiveObjects.scala:35
否则此错误会被静默忽略,因此列表仅包含空值。
python - 在 Python 中,循环引用的引用计数是多少,为什么?
这是 Python 循环引用的示例。
在这之后,
为什么引用计数为 3 a
?b
对不起,伙计们,我只是弄错了。
真正的问题是不同的。
为什么 'GNU' 的引用计数是 4 ?
提前致谢 :)
c++ - 编译 C++ 多对多类关系
我想知道如何实现以下设计。我没有努力遵循标准约定以将这个虚拟代码保持在最低限度(例如,包括警卫)。为了论证,我使用的是 C++03,并且只使用标准库组件。
TL;DR:我Restaurant
和Recipe
类之间存在循环依赖关系。我有std::set<>
一个指向类中对象的指针,Recipe
反之亦然Restaurant
。我不能#include
在另一个,但由于前向声明,编译器不允许我为集合声明自定义比较器,因为此时value_type
s 仍然是不完整的类型。有没有办法做到这一点?
我在代码中包含了更详细地解释我的问题的注释。
javascript - 在代码中查找圆形对象
我正在使用 jQuery 编写一个脚本来将一些内容加载到我的页面中。在运行时没有任何反应。检查 Firebug 控制台时出现此错误:
这是代码(放置在 <Head> 中):
我在这里使用了提示:Detecting and fix circular references in JavaScript但找不到任何循环关系!!!
任何关于挽救我生命的观点都将不胜感激。
- 卡姆兰
c++ - C++ cyclical inheritance dependancy
Each of the following statements have include guards around them, for their corresponding header files.
C extends B, things subclass B so they can get a pointer to A– but A has several fields that are subclasses of B.
My current solution is to store Bs in a void array, and use template methods you return the correct object based on run-time type information. But I want to know if there is a way for A to have C fields, even if C needs to link back to A, Ahead Of Time(Compile time).
I have taken a few courses on object oriented programming(they were mostly in java), but none that focused specifically on C++.
This is probably a common problem, and this question has probably already been asked and answered here– but I don't know what keywords to use to find such a solution.
A.h
B.h
C.h
Other OOP languages I've used just resolve such problems behind the scenes, where as C++ requires that the build order be correct. I saw several answers to other questions that looked vaguely similar to this one, but they were kind of unclear, please be concise about your answer.
c++ - 周期性引用是不好的做法吗?
假设我有三个类:EntityManager、Entity和Component。
实体有一个组件数组(指针),每个组件都有一个字段,该字段是指向封装实体的指针。
EntityManager有一个实体数组,每个实体都有一个指向其封装的EntityManager的指针。
这种设计的原因是数据依赖。组件需要访问封装实体的字段,并且一些组件依赖于其他实体的字段(指向实体管理器的指针)。
这种“周期性”设计是一种不好的做法吗?我应该重新考虑我的设计吗?