2017-09-15 63 views
1

自動裝配一個非原始彈簧註解像如何在基本類型中使用kotlin中的@Autowired或@Value等Spring註釋?

@Autowired 
lateinit var metaDataService: MetaDataService 

作品。

但是,這並不工作:

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

一個錯誤:

lateinit modifier is not allowed for primitive types.

如何primitve屬性自動裝配成科特林類?

+0

您可以自動導入可空的版本嗎?是否該字段必須遲到 – jrtapsell

+0

是的,var todCacheTimeSeconds:Int? =空作品,但那不是我想要的。 – fkurth

回答

0

這個問題不是註釋,而是根據this問題的原型和lateinit混合,Kotlin不允許lateinit primatives。

的解決將是更改爲可空類型Int?,或不lateinit

This使用TryItOnline顯示的問題。

0

Kotlin將Int編譯爲int代碼。 Spring希望注入非原始類型,所以你應該使用Int? /布爾?/長?可空類型kotlin編譯爲Integer/Boolean /等。

相關問題