在 Kotlin 中,我可以使用 external
关键字将函数的实现委托(delegate)给本地代码。鉴于 Kotlin 属性只是一对 getter 和 setter 函数的语法糖,我认为也应该可以使用 native 代码实现属性。但是,我似乎无法弄清楚该怎么做。
如果我在 get
和 set
关键字前加上 external
,Kotlin 告诉我它需要一个函数体:
当然,重点是不在 Kotlin 中有一个函数体。但是,如果我无论如何添加一个,Kotlin(相当意料之中)告诉我外部声明不能有主体:
我的语法错了吗?或者根本没有办法使用 JNI 实现 Kotlin 属性?
最佳答案
我找到了解决方案! 可以通过 JNI 实现属性,我只是使用了错误的语法!正确的语法是:
class Test {
var value: Int
external get // No parentheses or parameter list!
external set
}
这个语法似乎还没有被记录下来。
编辑:我为已合并的 Kotlin 文档创建了一个 PR。所以现在this feature is officially documented .
关于kotlin - 如何通过 JNI 实现一个 Kotlin 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63747448/