我在 kotlin 中开发一个应用程序,但需要有良好的 Java 支持。我发现的问题是 kotlin 的函数。
这是我以前做的
fun test(loader: (String) -> Int)
但这将从 kotlin 库编译成 Function1 并且由于 jar 大小,我没有将 kotlin 库直接包含在 jar 中,这使 Java 开发人员更难,因为他们必须下载 kotlin 库才能使用它方法。
我尝试使用 Java 中的供应商或函数接口,但我发现这对 kotlin 开发人员来说要困难得多,因为您必须提供更多的变量类型和空检查以及通用参数,这很痛苦..
还尝试创建自己的界面,例如
@FunctionalInterface
interface Function<in T, out R>: Function<R> {
operator fun invoke(p: T): R
}
和功能
fun test(loader: Function<String, Int>)
但它与默认的 java Function 接口相同
所以唯一可行的方法是让编译器将我的原始函数编译为我自己的函数接口,而不是 kotlin 的函数接口。但我不知道该怎么做。
神不在的星期二
拉莫斯之舞
相关分类