2016-01-21 6 views
4

Например, Groovy позволяет получить текст файла, представленного java.nio.file.Path следующим образом:Есть ли чистый способ использования методов расширения Groovy в Котлине?

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

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

Я хотел бы иметь возможность повторно использовать метод text расширения Groovy, в Котлин.

Обращаем внимание:: Я знаю Kotlin has a related method для данного конкретного случая. Тем не менее, могут быть методы Groovy, которые полезны для пользователей Kotlin.

ответ

4

Один из способов, чтобы написать простую обертку extension function в Котлин:

// 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' 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^