应如何导入Kotlin类的内联函数

时间:2018-04-22 10:38:03

标签: kotlin mockk

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

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类?

1 个答案:

答案 0 :(得分:2)

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

package io.pack

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

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

此项目构建的jar包含类文件,以及包含:{/ p>的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()
}