如何在Kotlin中为@PropertySource创建Java数组?

Grz*_*rek 3 java arrays spring kotlin

我正在尝试为基于Spring的应用程序配置@PropertySource.

在Java中,我可以这样做:

@PropertySource(value = {"application.properties","other.properties" })
Run Code Online (Sandbox Code Playgroud)

arrayOf在Kotlin 尝试过,但最终导致类型不匹配:

@PropertySource(value = arrayOf("application.properties", "other.properties"))
Run Code Online (Sandbox Code Playgroud)

什么是正确的方式去这里?

yol*_*ole 5

value注释参量以科特林一种特殊的方式进行处理(下面在Java中其特殊的处理),并且如果它具有一个数组类型,科特林其转换为一个vararg.因此,这里的正确语法很简单:

@PropertySource("application.properties", "other.properties")
Run Code Online (Sandbox Code Playgroud)

如果您确实要显式指定参数名称,请使用spread运算符将数组展开为varargs:

@PropertySource(value = *arrayOf("application.properties", "other.properties"))
Run Code Online (Sandbox Code Playgroud)

对于任何其他数组注释参数,您应该只是arrayOf()正常使用.