在Java类中使用Kotlin注释类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Java类中使用Kotlin注释类相关的知识,希望对你有一定的参考价值。
我正在Kotlin中编写新功能,但有些东西已经用Java编写了。
我在Mockito(Kotlin)
写测试,但Mockito
有最后一堂课的问题所以我创建了:
annotation class Mockable {}
并添加到Gradle-build
:
apply plugin: 'kotlin-allopen'
allOpen {
annotation('com.Mockable')
}
所以使用这个注释类我可以模拟Kotlin
类。
我如何在Java类中使用这个注释?
答案
你不需要Java。但无论如何,还有另一种方法可以将Mockito与Kotlin一起使用:
使用内容创建文件src / test / resources / mockito-extensions / org.mockito.plugins.MockMaker:
mock-maker-inline
这改变了模拟行为,也支持像Kotlin那样的final
类。对于某些Java类,我之后不得不使用spy()
而不是mock()
。
另一答案
我如何在Java类中使用这个注释?
您不能以这种方式使用此注释,因为kotlin-allopen
仅适用于Kotlin类。在Java中,只是不要将类标记为final
...
就此而言,在Kotlin中,如果我理解正确,它似乎没有用处:当注释将以某种方式处理时需要使用kotlin-allopen
,这需要创建带注释类型的子类,所以你需要编写open
以及注释。在这里,你可以写open
而不是@Mockable
。
以上是关于在Java类中使用Kotlin注释类的主要内容,如果未能解决你的问题,请参考以下文章