Fermer automatiquement une ressource avec la fonction use de Kotlin
La fonction use
du langage Kotlin est l'équivalent de la construction try-with-resources
du langage Java (apparue en version 7), car elle permet de fermer automatiquement un objet dont le type supporte l'interface Closeable
.
L'intérêt d'une telle fonction est d'assurer que la ressource que l'on utilise sera bien refermée automatiquement (et que les ressources du système associées soient libérées), par un appel à la méthode Closeable.close()
.
Kotlin déclare cette fonction ainsi :
1
|
|
use
est définie comme une fonction d'extension sur un type qui implémente l'interface Closeable
et qui, après l'exécution du bloc block
, appelle la méthode close()
, qu'il ait eu ou non une exception.
Voici un exemple d'utilisation de la fonction use
sur un objet de type FileInputStream
, qui est donc fermé automatiquement après l'exécution du bloc :
1 2 3 4 |
|
En langage Groovy, on utiliserait la méthode withCloseable
qui étend l'interface Closeable
(GDK), et l'exemple de code ci-dessus se réécrirait ainsi :
1 2 3 4 |
|
Note : le langage C# dispose d'une fonctionnalité similaire grâce au mot-clé using
, en relation avec l'interface IDisposable
.