为什么 Kotlin 不让我使用 writeText 扩展?

Why doesn't Kotlin let me use writeText extension?

我有一个带有方法的 Kotlin class,它创建了一些文本,然后我想将它写入一个文件:

import java.io.File
import java.util.*
import kotlin.io.*

class MyClass {
    fun run() {
        val result = html {
            head {
                title { +"Entry page" }
            }
            body {
                h1 {
                    +"Map"
                }
                +"Some HTML code"
            }
        }
        File("target/wdef/index.html").writeText(result)
    }
}

我收到一个错误 - writeText(result) 突出显示为红色,我收到错误消息 Error:(26, 40) Kotlin: Unresolved reference: writeText

我该如何解决?

一个问题可能是您将错误的类型传递给 writeText。它需要 String,但您传递了一个 html 建筑对象 HTML。尝试用 toString 转换它:

File("target/wdef/index.html").writeText(result.toString())