有没有一种干净的方式在Kotlin中使用Groovy的扩展方法?

5
例如,Groovy允许通过以下方式获取由java.nio.file.Path表示的文件的文本:
// Groovy code
import java.nio.file.Path
import java.nio.file.Paths

Path p = Paths.get("data.txt")
String text = p.text

我希望能够在Kotlin中重用Groovy的text扩展方法。

请注意:我知道Kotlin有一个相关方法适用于这种特定情况。但是,可能还有一些对Kotlin用户有用的Groovy方法。

1个回答

4

一种方法是使用Kotlin编写一个简单的扩展函数包装器:

// Kotlin code
import org.codehaus.groovy.runtime.NioGroovyMethods

fun Path.text(): String {
  return NioGroovyMethods.getText(this)
}

然后可以像这样使用:

// Kotlin code
import java.nio.file.Path
import java.nio.file.Paths

fun usageExample() {
  val p: Path = Paths.get("data.txt")
  val text: String = p.text()
}

如果使用Gradle构建项目,这意味着需要将Groovy添加到依赖项中。
// in build.gradle

dependencies {
    compile 'org.codehaus.groovy:groovy-all:2.4.5'
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接