私はXML DSLをKotlinで記述しており、問題に直面しています。コード:KotlinのtoStringの再帰的な問題
abstract class Element(val name: String) {
var children = mutableListOf<Element>()
override fun toString() = """
<$name>
${children.joinToString("\n") { toString() }}
</$name>
""".trimIndent()
}
私は{ toString() }
に次のエラーがあります。
型チェックは再帰的な問題に遭遇しました。最も簡単な回避策:宣言の種類を明示的に指定します。
私は次の出力が必要です
fun main(args: Array<String>) {
val a = Element("a")
a.children.add(Element("b"))
a.children.add(Element("c"))
println(a)
}
どのように私はこの問題を解決することができます:私は、次のコードをお持ちの場合
<a>
<b>
</b>
<c>
</c>
</a>
を?
ありがとうございました!今私は 'StackOverflowError'を持っていますが、別の話だと思います;) – Feeco