在 Kotlin 中,假设我有data class A (val f: B)和data class B (val f: A)。我想初始化 localvar a: A等var b: Bisa.f和bis b.f。并且必须保留 vals。这种循环实例化可能吗?aA.fB.f
data class A(val f: B)
data class B(val f: A)
fun foo() {
var a: A
var b: B
// instantiate a and b here with a.f == b and b.f == a ??
}
Run Code Online (Sandbox Code Playgroud) 想象一下以下组成的例子:
public enum Hand {
ROCK(SCISSORS),
PAPER(ROCK),
SCISSORS(PAPER);
private final Hand beats;
Hand(Hand beats) {
this.beats = beats;
}
}
Run Code Online (Sandbox Code Playgroud)
我将收到Illegal forward reference前向引用的错误SCISSORS.
有没有办法在Java中处理这样的前向引用?
或者你会如何模拟这种情况,你在几个枚举值之间有一个逻辑循环引用?