kotlin注释中的错误?

时间:2017-11-07 20:19:10

标签: android annotations 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中没有任何错误信息,所以我们可以随时将参数作为参数......所以我们失去了注释作为参数的优势......

看起来像是一个错误,或者我做错了什么?

1 个答案:

答案 0 :(得分:2)

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