在kotlin注释错误?

这里有两个代码示例

Java的:

public class Q { @Retention(RetentionPolicy.SOURCE) @IntDef({LOL.one, LOL.two}) @interface Lol{} public final class LOL{ public final static int one = 1; public final static int two = 2; } public Q(){ q(1); } void q (@Lol int q){ } } 

科特林:

 class Q { @Retention(AnnotationRetention.SOURCE) @IntDef(LOL.one, LOL.two) internal annotation class Lol object LOL { const val one = 1L const val two = 2L } init { q(1) } internal fun q(@Lol q: Int) { } } 

问题在这里:在Java调用这个q(1); 会告诉你一个错误:“必须是…之一”

但是在kotlin中没有任何错误信息,所以我们可以把参数放在任何我们想要的长度…所以我们失去了注释的优点作为参数…

看起来像一个错误,或者我正在做一些错误?

这不是一个错误。 这是Kotlin尚未实现的功能。 这是计划在未来。