我已经阅读了这一点,我所看到的一切都说我应该能够做到这一点,所以必须有一些我想念的小东西。我已经将Java类转换为Kotlin:
object OrderTitle {
@JvmOverloads
fun generateMessage(context: Activity, otherParameter: AType? = null): AnotherType {
// Do some things
}
}
我用Java称它:
message = OrderTitle.generateMessage(activity, property);
并得到此错误:
error: non-static method generateMessage(Activity,Property) cannot be referenced from a static context
使用@JvmStatic
注释您的函数,以便在编译时生成真正的静态java函数。
您可以使用:
object OrderTitle {
@JvmStatic
fun generateMessage(context: Activity, otherParameter: AType? = null): AnotherType {
// Do some things
}
}
然后你可以从Java调用它:
OrderTitle.generateMessage(...)
这样做的惯用方法是使用顶级功能,
@file:JvmName("ClassNameHere")
fun generateMessage(context: Activity, otherParameter: AType? = null): AnotherType {
// Do some things
}
然后从java中使用它作为
ClassNameHere.generateMessage()