Использование с автоклином в Котлине

В stdlib / kotlin.io мы находим

inline fun <T : Closeable?, R> T.use(block: (T) -> R): R (source) 

Однако он реализован на Closeable, а не на Superinterface AutoCloseable. При работе с некоторыми фреймворками, использующими AutoCloseable, это может быть немного больно.

Почему Kotlin не поддерживает «использование» с AutoCloseble?

kotlin-stdlib предназначен для использования с JDK 6 и выше, так что он не знает AutoCloseable (добавляется только в Java 7).

Но вы можете найти kotlin-stdlib-jre7 функцию в kotlin-stdlib-jre7 , расширение stdlib для JDK 7, добавленное для Kotlin 1.1. Вы можете заменить зависимость kotlin-stdlib с ней, поскольку она зависит от самого базового stdlib.

Он определяется как:

 public inline fun <T : AutoCloseable?, R> T.use(block: (T) -> R): R { ... } 

(ссылка api) (источник github)

И это было впервые упомянуто в этом сообщении в блоге .