Muh*_*lib 3 java android kotlin
我正在测试 Kotlin 注释,但无法让这段看似简单的代码正常工作
这是我的简单注释
@IntDef(1,2)
@Target(
AnnotationTarget.VALUE_PARAMETER)
@Retention(AnnotationRetention.SOURCE)
@MustBeDocumented
annotation class OnlyOneTwo
Run Code Online (Sandbox Code Playgroud)
现在我假设如果我用 装饰一个值参数@OnlyOneTwo
,如果我给它一个像 那样的值,该方法会引发编译错误5
。
我像这样使用这个注释
fun onlyTakesOneTwos(@OnlyOneTwo input:Int){
}
onlyTakesOneTwos(6) // shouldn't this throw a compile error ?
Run Code Online (Sandbox Code Playgroud)
我记得在Java中它曾经抛出一个错误。
首先,编译器不会Kotlin
检查这种类型的注释错误,Android
Lint 会检查,这也可能比枚举中更有效Java
,但在 中Kotlin
,执行这些操作的唯一方法是使用enums
,您仍然可以使用@IntDef
inKotlin
来提供建议,但其他值不会给你一个编译错误。另外,对于 ART,枚举的内存占用并不是什么大问题,Google IO 2018 在谈论ART
https://youtu.be/IrMw7MEgADk?t=855时也对此进行了介绍
归档时间: |
|
查看次数: |
870 次 |
最近记录: |