Équivalent des fonctions statiques Java dans Kotlin

Kailash Vaviya 15 février 2024
  1. Équivalent de Kotlin pour les fonctions statiques de Java
  2. Utiliser les objets Companion pour obtenir une fonctionnalité statique dans Kotlin
  3. Utilisez l’annotation @JvmStatic pour obtenir une fonctionnalité statique dans Kotlin
  4. Utiliser la fonction au niveau du package pour obtenir une fonctionnalité statique dans Kotlin
Équivalent des fonctions statiques Java dans Kotlin

Les développeurs Android qui utilisent le langage de programmation Java connaissent bien le mot-clé static. Le mot-clé static de Java est un modificateur de non-accès.

Nous pouvons créer des variables et des méthodes statiques en Java avec le mot-clé static. Il contribue à l’efficacité de la gestion de la mémoire.

Java Virtual Machine (JVM) alloue de la mémoire à ces variables et ne fonctionne qu’une seule fois, ce qui les rend économes en mémoire. Mais Kotlin est désormais le langage officiel du développement Android.

Alors que les développeurs passent de Java à Kotlin, l’un des plus grands obstacles est la création de fonctions statiques dans Kotlin. Il n’y a pas de mot clé tel que “statique” dans Kotlin.

Dans cet article, nous allons apprendre l’équivalent du mot clé static de Java dans Kotlin.

Équivalent de Kotlin pour les fonctions statiques de Java

Bien que le langage de programmation Kotlin n’ait pas le mot-clé static, nous pouvons toujours obtenir la fonctionnalité statique dans Kotlin.

Le principal avantage de la méthode statique est l’efficacité de la gestion de la mémoire. Par conséquent, pour obtenir une fonctionnalité statique, nous devons trouver un moyen garantissant que la mémoire n’est allouée qu’une seule fois et que la valeur ne peut pas être modifiée.

Il existe trois façons d’obtenir des fonctionnalités statiques dans Kotlin :

  • Utilisation de l’objet companion
  • Utilisation de l’annotation @JvmStatic
  • Utilisation de la fonction au niveau du package

Nous passerons en revue chacune des trois méthodes. Nous verrons également des exemples de mise en œuvre.

Utiliser les objets Companion pour obtenir une fonctionnalité statique dans Kotlin

Nous pouvons créer un objet compagnon en utilisant le mot-clé companion. JVM stockera les objets compagnons dans le même fichier que la classe ; par conséquent, l’objet peut accéder à toutes les variables et fonctions privées de la classe.

Les objets compagnons sont initialisés avec la classe ; par conséquent, l’allocation de mémoire ne se produit qu’une seule fois. La sémantique d’un objet compagnon est similaire à celle d’un initialiseur statique Java.

Maintenant que nous savons ce que sont les objets compagnons et comment ils fonctionnent, regardons un exemple. Dans cet exemple, nous allons créer un objet compagnon et voir comment il gère la gestion de la mémoire pour obtenir des fonctionnalités statiques dans Kotlin.

fun main(args: Array<String>) {
    // Accessing static variables and methods without creating objects
    println("Welcome!"+'\n' + "Accessing function of the ExampleClass without creating an object."
            + '\n' + ExampleClass.staticFunction());
}

class ExampleClass{
    companion object {
        fun staticFunction(): String {
            return "Static Method!"
        }
    }
}

Production:

Utilisation d&rsquo;un objet compagnon pour obtenir une fonctionnalité statique dans Kotlin

Cliquez ici pour vérifier la démo de l’exemple de code ci-dessus.

Si nous essayons de changer la variable dans le code ci-dessus, cela générera une erreur. Étant donné que les méthodes et les variables static ne se voient allouer de la mémoire qu’une seule fois, la modification des variables entraînera une erreur.

Utilisez l’annotation @JvmStatic pour obtenir une fonctionnalité statique dans Kotlin

Outre l’utilisation d’objets companion, nous pouvons également utiliser l’annotation @JvmStatic pour obtenir une fonctionnalité statique. Selon la documentation officielle, cette annotation précise que la JVM doit créer une méthode statique supplémentaire.

L’utilisation de l’annotation @JvmStatic est assez simple. Il suffit d’ajouter l’annotation devant la fonction que l’on veut static.

Voici un exemple pour démontrer la même chose.

fun main(args: Array<String>) {
    // Accessing static variables and methods without creating objects
    println("Hello!"+'\n' + ExampleClass.staticFunction());
}

object ExampleClass{
    @JvmStatic
    fun staticFunction(): String {
        return "Static Method!"
    }
}

Production:

Utilisation de l&rsquo;annotation @JvmStatic pour obtenir une fonctionnalité statique dans Kotlin

Cliquez ici pour vérifier la démo de l’exemple de code ci-dessus.

Utiliser la fonction au niveau du package pour obtenir une fonctionnalité statique dans Kotlin

Nous pouvons également obtenir une fonctionnalité statique dans Kotlin en déclarant la méthode ou la variable comme membre au niveau du package. L’utilisation de fonctions au niveau du package est un moyen pratique d’obtenir des fonctionnalités statiques.

Vous devez d’abord créer un fichier .kt de base dans n’importe quel package, puis définir la méthode. Une fois défini, vous pouvez importer le package et appeler la méthode à partir de n’importe quelle classe.

Voici comment vous pouvez le faire.

// create a .kt file first in any package and define the method
package example.app

fun product(x: Int, y: Int){
    return x*y
}

// after defining the method, import the package and call it from any class
import example.app.product

product (3*7)
Kailash Vaviya avatar Kailash Vaviya avatar

Kailash Vaviya is a freelance writer who started writing in 2019 and has never stopped since then as he fell in love with it. He has a soft corner for technology and likes to read, learn, and write about it. His content is focused on providing information to help build a brand presence and gain engagement.

LinkedIn

Article connexe - Kotlin Static