AutoCloseable

Common
JVM
JRE7
JS
Native
2.0
inline fun AutoCloseable(
    crossinline closeAction: () -> Unit
): AutoCloseable

(Common source) (JVM source) (JS source) (Native source)

Returns an AutoCloseable instance that executes the specified closeAction upon invocation of its close() function.

This function allows specifying custom cleanup actions for resources.

Note that each invocation of the close() function on the returned AutoCloseable instance executes the closeAction. Therefore, implementers are strongly recommended to make the closeAction idempotent, or to prevent multiple invocations.

Example:

val autoCloseable = AutoCloseable {
    // Cleanup action, e.g., closing a file or releasing a network connection
    Logger.log("Releasing the network connection.")
    networkConnection.release()
}

// Now you can pass the autoCloseable to a function or use it directly.
autoCloseable.use {
    // Use the connection, which will be automatically released when this scope finishes.
    val content = networkConnection.readContent()
    Logger.log("Network connection content: $content")
}

See Also

AutoCloseable.use