在Java中使用时,使用Kotlin中定义的IntDef时出错

时间:2017-10-16 20:35:16

标签: java kotlin android-support-library

我试图在Kotlin中定义一个IntDef接口,然后在Java中使用这些常量。我能够访问它,但当我尝试对其执行equals运算符时,我收到IDE Lint错误。但是,不同的比较运算符(<,>)工作正常。甚至使用' Objects.equal()'工作,只是没有==。有人对此有任何想法吗?

  

错误:必须是以下之一:1L,2L

我的Kotlin课程

class RandomClass{
    ...
    @IntDef(STATE_1, STATE_2)
    @Retention(AnnotationRetention.SOURCE)
    annotation class MyState

    companion object {
        const val STATE_1 = 1L
        const val STATE_2 = 2L
    }

在Java中访问发生错误的注释

void myFunction(@RandomClass.MyState long state){
    if(state == RandomClass.STATE_1){
        ...
    }
}

My Temp Fix for this

void myFunction(@RandomClass.MyState long state){
    if(Objects.equal(state, RandomClass.STATE_1)){
        ...
    }
}

0 个答案:

没有答案