如何在基本类型中使用kotlin中的@Autowired或@Value等Spring注解?

使用类似Spring的注释自动装配非基元

@Autowired lateinit var metaDataService: MetaDataService 

作品。

但是这不起作用:

 @Value("\${cacheTimeSeconds}") lateinit var cacheTimeSeconds: Int 

有一个错误:

基元类型不允许使用lateinit修饰符。

如何autotire primitve属性到kotlin类?

问题不在于注释,而在于根据这个问题,原始性和后期性的组合,Kotlin不允许后期的主要性质。

修复将更改为可空类型Int? ,或者不使用lateinit

这 TryItOnline显示的问题。

在Java代码中,Kotlin将Int编译为int。 Spring想注入非原始类型,所以你应该使用Int? /布尔? / 长? 可空类型kotlin编译为Integer / Boolean /等