我有这个Java注释声明,并希望在Kotlin中使用它
class CurlCommand {
Parameter(names = "-groups", description = "Comma-separated list of group names to be run")
var groups: Array<String>? = null
}
Run Code Online (Sandbox Code Playgroud)
编译器报告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
Run Code Online (Sandbox Code Playgroud)
得到"错误:(20,23)Kotlin:注释参数必须是编译时常量"
我怎样才能满足Kotlin编译器的要求?
Java只接受
@Parameter(names = "-groups", description = "Comma-separated list of group names to be run")
public String groups;
Run Code Online (Sandbox Code Playgroud)
您可以像这样在Kotlin中声明一个常量:
const val LG_PACKAGE = "com.myapp"
Run Code Online (Sandbox Code Playgroud)
但是,关于编译时常量的kotlin文档指出,它们只能是String类型或原始类型。因此,如果要使用常量,可以得到的最接近的结果是:
const val LG_PACKAGE = "com.myapp"
@EnableJpaRepositories(basePackages = arrayOf(LG_PACKAGE))
@EntityScan(basePackages = arrayOf(LG_PACKAGE))
open class LgApp {
Run Code Online (Sandbox Code Playgroud)
有时候答案很简单,一不小心就发现了
\n\narray("-groups")\nRun Code Online (Sandbox Code Playgroud)\n\n虽然 Kotlin 转换器给了我这段代码
\n\n@Parameter(names = "-groups", description = "Comma-separated list of group names to be run")\npublic String groups;\nRun Code Online (Sandbox Code Playgroud)\n\n正如我上面提到的\xe2\x80\x99ve。
\n| 归档时间: |
|
| 查看次数: |
4962 次 |
| 最近记录: |