在Kotlin中使用autoclose

Tom*_*son 6 kotlin

在stdlib/kotlin.io中我们找到了

inline fun <T : Closeable?, R> T.use(block: (T) -> R): R (source)
Run Code Online (Sandbox Code Playgroud)

但是它是在Closeable上实现的,而不是在Superinterface AutoCloseable上实现的.使用一些使用AutoCloseable的框架时,这可能有点痛苦.

为什么Kotlin不支持"使用"AutoCloseble?

hot*_*key 7

kotlin-stdlib是指用于与JDK 6和上述的使用,使得它不知道的AutoCloseable(只在Java 7添加).

但是你可以找到你需要的功能kotlin-stdlib-jre7,为Kotlin 1.1添加了JDK 7的stdlib扩展.您可以kotlin-stdlib用它替换依赖项,因为它取决于基本stdlib本身.

它被定义为:

public inline fun <T : AutoCloseable?, R> T.use(block: (T) -> R): R { ... }
Run Code Online (Sandbox Code Playgroud)

(api参考) (github来源)

它在本篇博文中首次提到.