gpt4 book ai didi

spring - 原始类型的属性不允许使用“lateinit”修饰符 - Kotlin

转载 作者:行者123 更新时间:2023-12-03 03:49:48 25 4
gpt4 key购买 nike

我在尝试将环境变量值分配给 lateinit 变量时遇到错误。错误是“原始类型的属性不允许'lateinit'修饰符”

我的application.properties(读取环境变量)

my.property.from.properties.file=true

MyService 类:

@Component
class MyService @Autowired constructor(
private val someService: SomeService) {

@Value("\${my.property.from.properties.file}")
private lateinit var myBooleanEnabled: Boolean

给它赋值并不能解决问题。例如,使用

private lateinit var myBooleanEnabled: Boolean = true

我收到 2 个错误:

  • 原始类型的属性不允许使用“lateinit”修饰符
  • 带有初始值设定项的属性不允许使用“lateinit”修饰符

根据我读到的内容,我需要一个委托(delegate)( https://kotlinlang.org/docs/reference/delegated-properties.html ),但我无法完全掌握它。另外,如果有“更干净”的解决方案,我不想编写另一个方法来设置属性。有什么想法吗?

最佳答案

最简单的事情是将 myBooleanEnabled 定义为可空并删除 lateinit

private var myBooleanEnabled: Boolean? = null

在这种情况下,它不会被解释为字节码中的原始 bool

但是,就您而言,我建议构造函数注入(inject)。

关于spring - 原始类型的属性不允许使用“lateinit”修饰符 - Kotlin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53710263/

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