在Java中这不是问题,但是在Kotlin中,我们没有静态的。我们有用于相同目的的伴随对象,但是,作为额外的对象,它们在JNI调用中得到了错误的名称(Java_package_Type00024Companion_function),这与JNI期望的不匹配。从主类调用它显然会导致的JNI错误GetStaticMethodID
。
所述@JvmStatic
注释可以被添加到同伴对象上定义的函数,以使一个静态方法的产生,其可以参考在你JNI调用。
从链接的Kotlin文档中:
class C { companion object { @JvmStatic fun callStatic() {} fun callNonStatic() {} } }
// java C.callStatic(); // works fine C.callNonStatic(); // error: not a static method
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句