【发布时间】:2018-11-20 19:02:12
【问题描述】:
我想设置两个相互保持不可变引用的值。示例:
data class Person(val other: Person)
val jack = Person(jill), jill = Person(jack) // doesn't compile
注意:lateinit 似乎不适用于数据类主构造函数。
有什么想法吗?
【问题讨论】:
-
也许可以为空的变量?
-
我真的希望避免可以为空的变量。应用程序的其余部分应该认为这个属性是不可变的,一旦设置。
-
这是一个循环依赖问题:要创建jack,我需要jill,而jill又需要jack等等。
-
@m0skit0 正确。有什么想法吗?
-
@CSJ 我想我没有正确解释自己。你想要做的是逻辑上不可能(从技术上讲,它需要无限的时间),除非你想放松你的条件。
标签: kotlin immutability