Java的互操作性:如何在Kotlin中声明一个编译时数组常量?

我有这个Java注释声明,并希望在Kotlin中使用它

class CurlCommand { Parameter(names = "-groups", description = "Comma-separated list of group names to be run") var groups: Array? = null } 

编译器报告TYPE_MISMATCH必需:kotlin.Array find:kotlin.String

我试过了

 Parameter(names = Array(1, {i-> "-groups"}), description = "Comma-separated list of group names to be run") var groups: Array? = null 

并得到“错误:(20,23)Kotlin:一个注释参数必须是一个编译时常量”

我怎样才能满足Kotlin编译器?

Java只是接受

 @Parameter(names = "-groups", description = "Comma-separated list of group names to be run") public String groups; 

2 Solutions collect form web for “Java的互操作性:如何在Kotlin中声明一个编译时数组常量?”

你在Kotlin声明如下:

 const val LG_PACKAGE = "com.myapp" 

但是, 编译时常量的kotlin文档说它们只能是Stringtypes或基本types。 所以如果你想使用常量,你可以得到最接近的是:

 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; 

正如我上面提到的。

  • 如何使用Netty4ClientHttpRequestFactory为Spring AsyncRestTemplate设置代理?
  • 为什么Spring MVC JSON的Kotlin返回一个空对象?
  • 使用Kotlin编写JavaScript代码有什么好处?
  • 从控制台循环字符串和总和奇数
  • 在Kotlin中获取函数名称
  • 用Kotlin注释泉水
  • 在kotlin中正常类和数据类之间有什么区别?
  • 访问外部价值内适用
  • 如何用原始types在kotlin中调用函数
  • 与Android和桌面项目共享一个Kotlin模块
  • Kotlin - NoSuchMethodError实例化Throwable时
  • Kotlin language will be the best programming language for Android.