我用Kotlin编写XML DSL并遇到问题。代码:Kotlin的toString递归问题
abstract class Element(val name: String) {
var children = mutableListOf<Element>()
override fun toString() = """
<$name>
${children.joinToString("\n") { toString() }}
</$name>
""".trimIndent()
}
我已经{ toString() }
以下错误:
类型检查,又碰上一个递归问题。最简单的解决方法:明确指定声明的类型。
我需要以下的输出:
<a>
<b>
</b>
<c>
</c>
</a>
如果我有以下代码:
fun main(args: Array<String>) {
val a = Element("a")
a.children.add(Element("b"))
a.children.add(Element("c"))
println(a)
}
我怎样才能解决这个问题?
谢谢!现在我有'StackOverflowError',但我认为这是另一回事;) – Feeco