Heim > Java > javaLernprogramm > Kotlin für Java-Entwickler (Teil 1)

Kotlin für Java-Entwickler (Teil 1)

Mary-Kate Olsen
Freigeben: 2025-01-27 16:04:17
Original
921 Leute haben es durchsucht

Kotlin for Java Developers (Part 1)

Java nimmt eine dominante Position in der Programmiersprache ein, daher habe ich bei der Verwendung von Kotlin die gleichen Fehler bei der Verwendung von Java -Entwicklern gesehen. Verstehen Sie mich nicht falsch.

In diesem Artikel informiert Sie den Geruchsgeruch, den ich oft sehe und wie man sie im "Kotlin" ideal realisiert.

Der erste Teil dieser Serie erfolgt:

    Verwenden Sie die Datenklasse
  • Verwenden Sie leere Sicherheit
  • unter den Standardumständen, nicht -mutternd
  • Verwenden Sie die Datenklasse
  • Dieses Thema könnte bald verschwinden, da immer mehr Java -Entwickler auch Erfahrung über die Verwendung von Datensätzen haben. Trotzdem gibt es immer noch einige Unterschiede zwischen dem Java -Datensatz und der Kotlin -Datenklasse.

Java -Methode:

oder als Datensatz:

Kotlin -Methode:
<code class="language-java">public class Person {
  private String name;
  private int age;

  public Person(String name, int age) {
    this.name = name;
    this.age = age;
  }
  // Getters, setters, ...
}</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

<code class="language-java">public record Person(
    String name,
    int age
) {
}</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Sie müssen möglicherweise einige Unterschiede zwischen dem Java -Datensatz und der Kotlin -Datenklasse verstehen.

Java -Datensätze und Kotlin -Datenkategorien sind unveränderte Datenträger.

<code class="language-kotlin">data class Person(val name: String, var age: Int)</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
In Java ist das Feld endgültig versteckt, was nach der Struktur nicht modifiziert werden kann.

Ein weiterer Unterschied besteht darin, dass der Datensatztyp in Java endgültig und versiegelt ist, was bedeutet, dass sie nicht erweitert werden können, und in Kotlin können Sie die Datenklasse erweitern.
  • In Kotlin können Sie auch Methoden für Gleich-, HashCode und ToString abdecken, was in Java unmöglich ist.
  • Kotlin bietet eine Kopiermethode mit Land, die in Java nicht verfügbar ist.
  • Einige Beispiele:
  • Objekte in Java
  • kopieren

kotlin:

oder zersetzt eine Aussage in Java:

<code class="language-java">Person p2 = new Person(p1.getName(), p1.getAge());</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
kotlin:

<code class="language-kotlin">val p2 = p1.copy(age = 42)</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Referenz

Kotlin Datenklasse
<code class="language-java">String name = p1.getName();
int age = p1.getAge();</code>
Nach dem Login kopieren
Nach dem Login kopieren

baeldung: Kotlin -Datenklasse

<code class="language-kotlin">val (name, age) = p1
println(name) // "John"
println(age) // 42</code>
Nach dem Login kopieren
Nach dem Login kopieren

Verwenden Sie leere Sicherheit
    meiner Meinung nach ist die Luftsicherheit in Kotlin eine der mächtigsten Funktionen. Dies ist eine Funktion, die die Spielregeln ändert und Ihnen viel Zeit und Ärger sparen kann. In Kotlin ist die Luftsicherheit im Typsystem introvertiert, was es einfacher macht, Laufzeitfehler im Zusammenhang mit Luft zu vermeiden.
  • 1. kann leer sein
  • In Kotlin wird der leere Typ explizit deklariert. Dies bedeutet, dass Sie eine Variable haben können, die den leeren Wert speichern kann, aber Sie müssen in der Anweisung explizit angegeben werden.

Nicht -mepty Type (Standard)

standardmäßig sind alle Typen in Kotlin unverzichtbar, was bedeutet, dass die Variable den leeren Wert nicht speichern kann.

kann den Typ

leeren können

Um eine Variable zu deklarieren, die den leeren Wert speichern kann, müssen Sie den Bediener verwenden.

2. Sicherheitsanruf

Eine leistungsstarke Funktion ist der sichere Anrufbetreiber?. Es ermöglicht Ihnen, Methoden oder Zugriffsattribute sicher zu dämpfen, ohne NullPointerexception zu werfen.
<code class="language-kotlin">val name: String = "John" // 不可空
name = null // 编译错误!</code>
Nach dem Login kopieren

Beispiel

<code class="language-java">public class Person {
  private String name;
  private int age;

  public Person(String name, int age) {
    this.name = name;
    this.age = age;
  }
  // Getters, setters, ...
}</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
? Wenn das Objekt leer ist, ist das Berechnungsergebnis des gesamten Ausdrucks null.

3. Elvis Operator (? :)

Elvis -Operator ?: Es ist die Abkürzung des Standardwerts, wenn der Ausdruck auf der linken Seite des Bedieners leer ist.

<code class="language-java">public record Person(
    String name,
    int age
) {
}</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
4. !!

Sie können es verwenden !! Wenn der Wert null ist, wird NullPointerexception ausgelöst.

<code class="language-kotlin">data class Person(val name: String, var age: Int)</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Tipp: Es wird nicht empfohlen, dies zu verwenden !!

5. Die Leere im Funktionsparameter

Wenn Sie die Funktion definieren, können Sie angeben, ob die Parameter leer werden können. In diesem Fall muss der Anrufer damit umgehen.

6. Sicherheitsumwandlung (als Währung)
<code class="language-java">Person p2 = new Person(p1.getName(), p1.getAge());</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Es gibt einen sicheren Konvertierungsoperator als?

7. Luftsicherheit im Lambda -Ausdruck
<code class="language-kotlin">val p2 = p1.copy(age = 42)</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Sie können auch Luftsicherheitsfunktionen in Lambda -Ausdruck und hohen Funktionen verwenden:

8. Verwenden Sie die LET -Funktion
<code class="language-java">String name = p1.getName();
int age = p1.getAge();</code>
Nach dem Login kopieren
Nach dem Login kopieren

Die Funktion ist eine Domänenfunktion, mit der Sie Codeblöcke für nicht -Luft -Objekte ausführen können. Es wird normalerweise verwendet, um Code auf dem leeren Objekt auf sichere Weise auszuführen.

Beispiel und Standardwert:

9. Best Practice
<code class="language-kotlin">val (name, age) = p1
println(name) // "John"
println(age) // 42</code>
Nach dem Login kopieren
Nach dem Login kopieren

vermeiden Sie es !!
    Verwenden Sie Sicherheitsanrufe und ELVIS -Vorgänge, um leere Typen sicher zu verarbeiten und Standardwerte anzugeben
  • Verwenden Sie den verfügbaren Typ nur bei Bedarf
  • Referenz:
Kotlin Luftsicherheit

  • unter den Standardumständen, nicht -mutternd
Kotlin fördert stark funktionelle Programmierstile! Für funktionelle Programmierstile spielen Nicht -Varianten eine wichtige Rolle bei der Vermeidung von Fehlern, insbesondere bei Multi -Thread -Anwendungen.

Ich kann jetzt einen separaten Artikel über die funktionale Programmierung in Kotlin oder Java schreiben, aber nun lassen Sie uns der Unveränderlichkeit achten.

Kotlin bevorzugt im Wesentlichen unbefriedigende Objekte als variable Objekte. Dies macht den Code einfacher und vorhersehbar, insbesondere in der gleichzeitigen Umgebung.

1. Unerwartete Variable (Val)

In Kotlin sind die Variablen, die standardmäßig mit VAL -Schlüsselwörtern deklariert sind, unveränderlich. Dies ist sehr nahe an deklarierten endgültigen Variablen in Java, aber es gibt einige wichtige Unterschiede:

Die VAL -Variablen in Kotlin werden tatsächlich gelesen -die Werte, die nach der Initialisierung nicht in sie geändert werden können.

Wenn der Wert ein Objekt ist, kann er jedoch die Attribute des Objekts ändern, es sei denn, das Attribut selbst deklariert den Wert selbst.
  • Beispiel:

Der Unterschied zwischen Java: In Java verwenden wir endgültige Schlüsselwörter, um sicherzustellen, dass die Variable nicht zurückgezahlt werden kann, aber die Objekte, die Punkte immer noch variabel sein können. Der Hauptunterschied in Kotlin besteht darin, dass es standardmäßig standardmäßig auf Variablen erweitert wird, was das Design von prädiktiveren und sichereren Lösungen für die gesamte Anwendung fördert.

variable variable Beispiel: Verwenden Sie die VAR -Schlüsselwörter in Kotlin, damit Sie die Variable neu starten können.

<code class="language-java">public class Person {
  private String name;
  private int age;

  public Person(String name, int age) {
    this.name = name;
    this.age = age;
  }
  // Getters, setters, ...
}</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Tipp: Kotlin ermutigt so viel wie möglich anstelle von VAR, um eine Nichtabznungen zu gewährleisten.

2. unveränderliche Sammlung

standardmäßig wird es auch aufgefordert, Uncharakterien zu verwenden. Der uncharakteristische Satz verhindert Änderungen nach der Erstellung.

<code class="language-java">public record Person(
    String name,
    int age
) {
}</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Wenn Sie die Sammlung ändern müssen, können Sie Mutablelistof () oder andere Variablensammlungstypen verwenden.

<code class="language-kotlin">data class Person(val name: String, var age: Int)</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Der Unterschied zwischen Java: In Java ist die Sammlung (wie ArrayList) standardmäßig variabel, was bedeutet, dass sie die Elemente frei ändern kann.

3.. Die Kategorie variabler Daten

kann nicht variable Datenkategorie Die Datenklasse von

Kotlin ist standardmäßig unveränderlich. Beim Definieren der Datenklasse wird das Attribut normalerweise als VAL deklariert, wodurch die Klasse unverändert wird. Dies macht die Klasse sehr geeignet für Wertobjekte, insbesondere wenn es um API, Datenbankdatensätze oder einen anderen Objektstatus geht, der nach der Erstellung nicht geändert werden sollte.

<code class="language-java">Person p2 = new Person(p1.getName(), p1.getAge());</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
<code class="language-kotlin">val p2 = p1.copy(age = 42)</code>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
4. Die unbefriedigende in der Versiegelungsklasse

Kotlins Versiegelungskurse können ebenfalls unveränderlich sein und sind gut mit nicht nachgewiesenen Datenmodellen abgestimmt. Versiegelungsklassen werden normalerweise verwendet, um begrenzte Klassenstrukturen wie Status oder Reaktion darzustellen, und ihre Unmoral stellt sicher, dass der Zustand oder die Ergebnisse nicht versehentlich geändert werden.

Das obige ist der detaillierte Inhalt vonKotlin für Java-Entwickler (Teil 1). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage