У меня есть случай, когда я использую переменную 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()
}
}
Проблема в том, что если я не создаю объект lateinit
Tok
через Builder, компилятор просто сообщает мне, что общая переменная lateinit
не инициализирована.
Было бы замечательно, если бы он также сказал мне имя переменной вместе с классом , к которому относится lateinit . Есть ли флаг или что-то, благодаря чему я мог бы реализовать это поведение?