Entspricht den statischen Java-Funktionen in Kotlin

Kailash Vaviya 15 Februar 2024
  1. Kotlins Äquivalent für die statischen Funktionen von Java
  2. Verwenden Sie die Companion-Objekte, um die statische Funktionalität in Kotlin zu erreichen
  3. Verwenden Sie die Annotation @JvmStatic, um die statische Funktionalität in Kotlin zu erreichen
  4. Verwenden Sie die Funktion auf Paketebene, um statische Funktionalität in Kotlin zu erreichen
Entspricht den statischen Java-Funktionen in Kotlin

Android-Entwickler, die die Programmiersprache Java verwenden, kennen das Schlüsselwort statisch. Das Java-Schlüsselwort static ist ein Nicht-Zugriffsmodifikator.

Wir können statische Variablen und Methoden in Java mit dem Schlüsselwort static erstellen. Es hilft bei der Effizienz der Speicherverwaltung.

Java Virtual Machine (JVM) weist diesen Variablen und Funktionen Speicher nur einmal zu, wodurch sie speichereffizient werden. Aber Kotlin ist jetzt die offizielle Sprache für die Android-Entwicklung.

Wenn Entwickler von Java zu Kotlin wechseln, besteht eine der größten Hürden darin, statische Funktionen in Kotlin zu erstellen. Es gibt kein Schlüsselwort wie statisch in Kotlin.

In diesem Artikel lernen wir das Äquivalent zum Java-Schlüsselwort static in Kotlin kennen.

Kotlins Äquivalent für die statischen Funktionen von Java

Während die Kotlin-Programmiersprache das Schlüsselwort static nicht hat, können wir in Kotlin dennoch die statische Funktionalität erreichen.

Der Hauptvorteil der statischen Methode ist die Effizienz der Speicherverwaltung. Um statische Funktionalität zu erreichen, müssen wir also einen Weg finden, der sicherstellt, dass der Speicher nur einmal zugewiesen wird und der Wert nicht änderbar ist.

Es gibt drei Möglichkeiten, statische Funktionalität in Kotlin zu erreichen:

  • Verwendung des companion-Objekts
  • Verwendung der Annotation @JvmStatic
  • Verwenden der Funktion auf Paketebene

Wir werden jede der drei Methoden durchgehen. Wir werden uns auch Beispiele ansehen, wie man sie umsetzt.

Verwenden Sie die Companion-Objekte, um die statische Funktionalität in Kotlin zu erreichen

Wir können ein Companion-Objekt mit dem Schlüsselwort companion erstellen. JVM speichert die Begleitobjekte in derselben Datei wie die Klasse; daher kann das Objekt auf alle privaten Variablen und Funktionen der Klasse zugreifen.

Die Begleitobjekte werden zusammen mit der Klasse initialisiert; daher erfolgt die Speicherzuordnung nur einmal. Die Semantik eines Companion-Objekts ähnelt der eines statischen Java-Initialisierers.

Nachdem wir nun wissen, was Begleitobjekte sind und wie sie funktionieren, wollen wir uns ein Beispiel ansehen. In diesem Beispiel erstellen wir ein Begleitobjekt und sehen, wie es die Speicherverwaltung handhabt, um statische Funktionalität in Kotlin zu erreichen.

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!"
        }
    }
}

Ausgabe:

Verwenden von Begleitobjekten zum Erreichen statischer Funktionalität in Kotlin

Klicken Sie hier, um die Demo des obigen Beispielcodes zu überprüfen.

Wenn wir versuchen, die Variable im obigen Code zu ändern, wird ein Fehler ausgegeben. Da statischen Methoden und Variablen Speicher nur einmal zugewiesen wird, führt das Ändern der Variablen zu einem Fehler.

Verwenden Sie die Annotation @JvmStatic, um die statische Funktionalität in Kotlin zu erreichen

Neben der Verwendung von companion-Objekten können wir auch die Annotation @JvmStatic verwenden, um statische Funktionalität zu erreichen. Laut offizieller Dokumentation gibt diese Anmerkung an, dass die JVM eine zusätzliche statische Methode erstellen soll.

Die Verwendung der Annotation @JvmStatic ist ziemlich einfach. Wir müssen nur die Anmerkung vor der Funktion hinzufügen, die wir statisch haben wollen.

Hier ist ein Beispiel, um dasselbe zu demonstrieren.

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!"
    }
}

Ausgabe:

Verwenden von @JvmStatic Annotation zum Erreichen statischer Funktionalität in Kotlin

Klicken Sie hier, um die Demo des obigen Beispielcodes zu überprüfen.

Verwenden Sie die Funktion auf Paketebene, um statische Funktionalität in Kotlin zu erreichen

Wir können auch statische Funktionalität in Kotlin erreichen, indem wir die Methode oder Variable als Mitglied auf Paketebene deklarieren. Die Verwendung von Funktionen auf Paketebene ist eine bequeme Möglichkeit, statische Funktionalität zu erreichen.

Sie müssen zuerst eine grundlegende .kt-Datei in einem beliebigen Paket erstellen und dann die Methode definieren. Nach der Definition können Sie das Paket importieren und die Methode von jeder Klasse aus aufrufen.

Hier ist, wie Sie es tun können.

// 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

Verwandter Artikel - Kotlin Static