首页 > 解决方案 > 为什么 Kotlin 文件中定义的内联函数不能在 Java 代码中使用?

问题描述

我试图理解为什么我不能在我的 Java 代码中使用 Kotlin 文件中定义的内联函数?

项目详情

科特林:1.5.20 - Java:15.0.1

混合代码(Java + Kotlin)。我在 Java 和 Kotlin 中都有相同的包结构,如下所示:

com.app.company.util.Util.java

com.app.company.util.Util.kt

Util.kt我有一个内联函数如下:

val commonMapper = jacksonObjectMapper()

inline fun <reified T> parseJson(content: String): T {
   return commonMapper.readValue(content)
}

我注意到,由于UtilJava 类和 Kotlin 文件的名称相同,如果我想引用 Kotlin 文件,我必须使用UtilKt. 我通过反编译 Kotlin 文件发现了这一点。

有趣的是, onlycommonMapper是通过getCommonMapper()方法 not暴露出来的parseJson

有人可以帮我理解为什么parseJson从 Java 中看不到吗?

标签: javakotlin

解决方案


推荐阅读