2017-09-15 8 views
1

作品 プリミティブ型の場合、kotlinの@Autowiredや@Valueのようなスプリング注釈の使い方は?春の注釈と非プリミティブをオートワイヤリング

@Autowired 
lateinit var metaDataService: MetaDataService 

のような。

しかし、これは動作しません:エラーと

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

を:

lateinit modifier is not allowed for primitive types.

kotlinクラスにprimitveプロパティをautowireする方法は?

+0

null可能なバージョンをオートワイヤリングできますか?フィールドは遅くなければならない – jrtapsell

+0

はい、var todCacheTimeSeconds:Int? = nullは動作しますが、それは私が望むものではありません。 – fkurth

答えて

0

問題は注釈ではありませんが、this質問ごとに、プライマリとレイトニットが混在しているため、Kotlinはlateinit primativesを許可しません。

修正がNULL可能タイプInt?に変更する、またはlateinit

This TryItOnlineが問題を示して使用しないことであろう。

0

Kotlinはintからjavaコードでintをコンパイルします。 Springは非プリミティブ型の注入を望んでいたので、Intを使うべきですか? /ブール?/長いです?ヌル可能な型kotlinを整数/ブール値などにコンパイルします。