gpt4 book ai didi

spring-boot - 在 kotlin 的构造函数中使用 lateinit 属性

转载 作者:行者123 更新时间:2023-12-02 12:38:26 28 4
gpt4 key购买 nike

如何在我的类构造函数中使用 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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com