在一个用例中,我使用lateinit
变量作为字段,如下所示:
class LiteralExpr(val token: Tok) : Expr() {
override fun <T> accept(visitor: Visitor<T>): T {
return visitor.visitLiteralExpression(this)
}
class Builder {
lateinit var token: Tok
fun build(): LiteralExpr = LiteralExpr(token)
}
companion object {
fun create(init: Builder.() -> Unit) = Builder().apply(init).build()
}
}
问题是,如果我没有通过Builder创建lateinit
Tok
对象,则编译器只是告诉我未初始化通用lateinit
变量。
如果它还告诉我变量的名称以及lateinit所属的类,那就太好了。有没有标志或可以使我意识到这种行为的东西?