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.