如何在我的类构造函数中使用 lateinit 属性:
我有一个 spring 组件,用于设置和访问第三方库,如下所示:
@Service
class LibProxy {
@Value("\${lib.someProperty}")
private lateinit var someProperty: String
final var lib: Lib
init {
lib = Lib(someProperty)
}
}
这给出了一个
kotlin.UninitializedPropertyAccessException: lateinit property someProperty has not been initialized
这应该怎么做?
我想避免这样的结构:
@Service
class LibProxy {
@Value("\${lib.someProperty}")
private lateinit var someProperty: String
private var lib: Lib? = null
getLib(): Lib {
if (lib == null) {
lib = Lib(someProperty)
}
return lib ?: Lib(someProperty)
}
}
最佳答案
根据 JEY的评论。应该是这样的:
@Service
class LibProxy(@Value("\${lib.someProperty}") private val someProperty: String) {
final var lib: Lib
init {
lib = Lib(someProperty)
}
}
关于spring-boot - 在 kotlin 的构造函数中使用 lateinit 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55122842/