【发布时间】:2020-10-08 09:58:53
【问题描述】:
我想检查在启动 SpringBoot 应用程序时是否可以避免使用扩展运算符。
所以,而不是通常的:
fun main(args: Array<String>) {
runApplication<Application>(*args)
}
这是我尝试过的:
fun main(vararg args: String) {
runApplication<Application>(args)
}
但我发现这行不通。我收到一条错误消息,告诉我 runApplication 需要 String,但它找到了 Array<out String>。并建议我使用 *args,这正是我试图避免的。
这对我来说毫无意义,因为args 实际上是一个可变参数类型,而不仅仅是一个字符串。而且通过查看 SpringBoot 的 runApplication 的定义,我看到了:
public inline fun <reified T : kotlin.Any> runApplication(vararg args: kotlin.String): org.springframework.context.ConfigurableApplicationContext { /* compiled code */ }
反编译的是:
public static final ConfigurableApplicationContext runApplication(@NotNull String... args) {...}
我假设 vararg args: String 等同于 Java 的 String...
有人对此有解释吗?提前致谢!
【问题讨论】:
标签: spring-boot kotlin