cha*_*_pl 19 kotlin kotlin-interop
我想使用@OneOf注释package io.dropwizard.validation;
Java用法:
@OneOf(value = {"m", "f"})
Run Code Online (Sandbox Code Playgroud)
Kotlin用法:???
我试过这个:
@OneOf(value = arrayOf("m", "f"))
Run Code Online (Sandbox Code Playgroud)
还有这个:
@OneOf(value = ["m", "f"])
Run Code Online (Sandbox Code Playgroud)
我得到的是:
类型推断失败.预期的类型不匹配:
必需:字符串
发现:
Array<String>
Kotlin版本:1.1.2-2
yol*_*ole 21
该value参数在Kotlin中自动转换为vararg参数,如http://kotlinlang.org/docs/reference/annotations.html#java-annotations中所述.
这种特殊情况的正确语法是 @OneOf("m", "f")
Bak*_*aii 12
在Kotlin 1.2中,它支持注释中的数组文字.所以下面的语法在Kotlin 1.2中变得有效:
@OneOf(value = ["m", "f"])
Run Code Online (Sandbox Code Playgroud)
作为Kotlin 文档中的示例
// Kotlin 1.2+:
@OneOf(names = ["abc", "foo", "bar"])
class C
// Older Kotlin versions:
@OneOf(names = arrayOf("abc", "foo", "bar"))
class D
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4718 次 |
| 最近记录: |