Java的互操作性:如何在Kotlin中声明一个编译时数组常量?
我有这个Java注释声明,并希望在Kotlin中使用它
class CurlCommand { Parameter(names = "-groups", description = "Comma-separated list of group names to be run") var groups: Array<String>? = null }
编译器报告TYPE_MISMATCH必需:kotlin.Array <kotlin.String>找到:kotlin.String
我试过了
Parameter(names = Array<String>(1, {i-> "-groups"}), description = "Comma-separated list of group names to be run") var groups: Array<String>? = null
并得到“错误:(20,23)Kotlin:一个注释参数必须是一个编译时常量”
我怎样才能满足Kotlin编译器?
Java只是接受
@Parameter(names = "-groups", description = "Comma-separated list of group names to be run") public String groups;
你在Kotlin声明如下:
const val LG_PACKAGE = "com.myapp"
但是, 编译时常量的kotlin文档说它们只能是String类型或基本类型。 所以如果你想使用常数,你可以得到最接近的是:
const val LG_PACKAGE = "com.myapp" @EnableJpaRepositories(basePackages = arrayOf(LG_PACKAGE)) @EntityScan(basePackages = arrayOf(LG_PACKAGE)) open class LgApp {
有时答案很简单,一旦意外发现
array("-groups")
虽然Kotlin转换器给了我这个代码
@Parameter(names = "-groups", description = "Comma-separated list of group names to be run") public String groups;
正如我上面提到的。