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:
oder als Datensatz:
<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>
<code class="language-java">public record Person( String name, int age ) { }</code>
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>
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.
kotlin:
oder zersetzt eine Aussage in Java:
<code class="language-java">Person p2 = new Person(p1.getName(), p1.getAge());</code>
<code class="language-kotlin">val p2 = p1.copy(age = 42)</code>
Kotlin Datenklasse
<code class="language-java">String name = p1.getName(); int age = p1.getAge();</code>
baeldung: Kotlin -Datenklasse
<code class="language-kotlin">val (name, age) = p1 println(name) // "John" println(age) // 42</code>
standardmäßig sind alle Typen in Kotlin unverzichtbar, was bedeutet, dass die Variable den leeren Wert nicht speichern kann.
leeren können
Um eine Variable zu deklarieren, die den leeren Wert speichern kann, müssen Sie den Bediener verwenden.
2. SicherheitsanrufEine 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>
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>
3. Elvis Operator (? :)
<code class="language-java">public record Person( String name, int age ) { }</code>
<code class="language-kotlin">data class Person(val name: String, var age: Int)</code>
5. Die Leere im Funktionsparameter
6. Sicherheitsumwandlung (als Währung)
<code class="language-java">Person p2 = new Person(p1.getName(), p1.getAge());</code>
7. Luftsicherheit im Lambda -Ausdruck
<code class="language-kotlin">val p2 = p1.copy(age = 42)</code>
8. Verwenden Sie die LET -Funktion
<code class="language-java">String name = p1.getName(); int age = p1.getAge();</code>
Beispiel und Standardwert:
9. Best Practice
<code class="language-kotlin">val (name, age) = p1 println(name) // "John" println(age) // 42</code>
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:
Wenn der Wert ein Objekt ist, kann er jedoch die Attribute des Objekts ändern, es sei denn, das Attribut selbst deklariert den Wert selbst.
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>
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>
<code class="language-kotlin">data class Person(val name: String, var age: Int)</code>
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>
<code class="language-kotlin">val p2 = p1.copy(age = 42)</code>
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!