I have this custom object:
data class Pair(
var first: String = "1",
var second: String = "2"
)
现在我想将其与我的 application.yml
自动装配:
my-properties:
my-integer-list:
- 1
- 2
- 3
my-map:
- "abc": "123"
- "test": "test"
pair:
first: "abc"
second: "123"
使用这个类:
@Configuration
@ConfigurationProperties(prefix = "my-properties")
class ComplexProperties {
lateinit var myIntegerList: List<Int>
lateinit var myMap: Map<String, String>
lateinit var pair: Pair
}
在添加了Pair
之前,它工作正常,但是之后我只得到了Reason: lateinit property pair has not been initialized
这是我的main
:
@SpringBootApplication
class DemoApplication
fun main(args: Array<String>) {
runApplication<DemoApplication>(*args)
}
@RestController
class MyRestController(
val props: ComplexProperties
) {
@GetMapping
fun getProperties(): String {
println("myIntegerList: ${props.myIntegerList}")
println("myMap: ${props.myMap}")
println("pair: ${props.pair}")
return "hello world"
}
}
使用Java,我已经完成了这个任务,但我无法看出还缺少什么。
Pair
,而Kotlin已经有了一个?并且为什么要使用模糊的名称“first”和“second”来进行配置?我认为这个问题遭受了XY问题的困扰。 - ordonezalexPair
时遇到了同样的错误。所以我尝试自己创建一个,但是它表现出同样的行为。我只是从原始的Pair
复制了一下。你有没有使用 Kotlin 的Pair
成功应用于这个条件的案例呢? - rado