0

项目依赖 jar(例如,称为KotlinClass)中有一个带有内联函数的 kotlin 文件

package io.pack

inline fun <T> every(){
    ///does stuff
}

如果我将它作为静态导入到 Java 类中:

import static io.pack.KotlinClass.every;

导入被识别。

如果我将它导入 Kotlin 类:

import io.pack.every

或(无论如何这都不应该起作用,但为了完整性而尝试)作为

import io.pack.KotlinClass.every

它不被认可。

(注意:如果我使用内联函数创建自己的 Kotlin 文件,则可以毫无问题地将其导入 Kotlin 类。问题是从特定项目依赖项导入时。)

什么可能会阻止将此函数导入 kotlin 类?

4

1 回答 1

2

这个对我有用。我用一个名为的文件创建了一个 Kotlin 模块TopLevelStandalone.kt

package io.pack

inline fun every(){
    print("Inline")
}

fun normalFun() {
    print("Normal")
}

这个项目构建到的 jar 包含类文件,并且META-INF/top-level-standalone.kotlin_module包含:

io.packTopLevelStandaloneKt

然后我创建另一个 Kotline 模块,手动将 jar 添加到其依赖项中。我现在可以打电话everynormalFun

import io.pack.every
import io.pack.normalFun

fun main(args: Array<String>) {
    every()
    normalFun()
}
于 2018-04-22T18:38:38.313 回答