当我尝试使用SPeL表达式来注入一个值时,它可以在Java中使用,但不能在Kotlin中使用。 编译器说 错误:(13,25)Kotlin:注释参数必须是编译时常量 码: @SpringBootApplication open class DeDup(@Value("#{new java.io.File('${roots}')}") val roots: Set<File>, @Value("algo") val hashAlgo: String, @Value("types")val fileTypes: List<String>) { } fun main(args: Array<String>) { SpringApplication.run(DeDup::class.java, *args) } 嗯…新闻Flash Kotlin编译器:这是一个常数! 编译器清楚地知道这是一个SPeL表达式,并不喜欢它。 我的问题: Kotlin为什么不喜欢SPeL? 这是一个施工注射(或是否),不违反不变性。 这是一个编译器错误? 这个消息是无可辩驳的错误。