动机:
在我们的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标准库函数?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)