Mi propia solución para la ausencia de prueba de Kotlin con recursos

Kotlin proporciona eluse función paraCloseable objetos, pero parece que se olvidaron de considerarAutoCloseable (por ejemplo, declaraciones preparadas de base de datos) para el equivalente Java completo de prueba con recursos

He implementado la siguiente solución "casera":

inline fun <T:AutoCloseable,R> trywr(closeable: T, block: (T) -> R): R {
    try {
        return block(closeable);
    } finally {
        closeable.close()
    }
}

Entonces puedes usarlo de la siguiente manera:

fun countEvents(sc: EventSearchCriteria?): Long {
    return trywr(connection.prepareStatement("SELECT COUNT(*) FROM event")) {
        var rs = it.executeQuery()
        rs.next()
        rs.getLong(1)
    }
}

Soy nuevo en Kotlin y me gustaría saber si me falta algo importante en mi propia solución que pueda darme problemas / fugas en un entorno de producción.

Respuestas a la pregunta(3)

Su respuesta a la pregunta