如何从Java调用Kotlin标准库函数?

如何从Java调用Kotlin标准库函数?,第1张

概述动机:在我们的Android项目中,我们进行了许多验证,例如str!=null&&!str.isEmpty(),所以我决定将它们重构为辅助方法.一会儿,我使用以下课程作为助手:publicclassStringUtil{publicstaticbooleanisNullOrEmpty(@NullableStringstr){returnstr==null||s

动机:

在我们的Android项目中,我们进行了许多验证,例如str!= null&& !str.isEmpty(),所以我决定将它们重构为辅助方法.
一会儿,我使用以下课程作为助手:

public class StringUtil {    public static boolean isNullOrEmpty(@Nullable String str) {        return str == null || str.isEmpty();    }}

问题:

我们已经有一个用Kotlin编写的字符串的帮助程序类(例如,String.kt).
因此,尚不清楚有两个助手(一个在Java中,一个在Kotlin中).

我试过的

String.kt内复制过去的isNullOrEmpty()的幼稚方法未成功,因为$recIEver为null,所以它崩溃了.

其次,我尝试使用kotlin.text(https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/is-null-or-empty.html)中的Kotlin原生isNullOrEmpty():

public inline fun CharSequence?.isNullOrEmpty(): Boolean

但我不知道如何从Java调用它.此页面(https://kotlinlang.org/docs/reference/java-to-kotlin-interop.html)没有提供任何建议.

问题不是关于Accessing Kotlin extension functions from Java.我的扩展名是完全可见的,但是由于空接收器而崩溃.正如我在下面提到的,问题更多是关于访问本机库代码,而不是我自己的扩展.

有什么帮助吗?

解决方法:

一些标准库函数(包括该函数)都标有@InlineOnly批注,这使它们无法从Java访问.对于大多数其他功能,您可以完全按照问题(重复链接)中的说明进行访问.

总结

以上是内存溢出为你收集整理的如何从Java调用Kotlin标准库函数?全部内容,希望文章能够帮你解决如何从Java调用Kotlin标准库函数?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1092083.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存