AutoCloseable
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