Kotlin
Kotlin für Java-Entwickler
Suche…
Einführung
Die meisten Leute, die nach Kotlin kommen, haben einen Programmierhintergrund in Java.
In diesem Thema werden Beispiele zum Vergleich von Java und Kotlin gesammelt. Dabei werden die wichtigsten Unterschiede und die von Kotlin angebotenen Juwelen über Java hervorgehoben.
Variablen deklarieren
In Kotlin sehen Variablendeklarationen ein bisschen anders aus als Javas:
val i : Int = 42
Sie beginnen mit entweder
val
odervar
, so dass die Erklärungfinal
( „val ue“) oder var iable.Der Typ wird nach dem Namen angegeben, getrennt durch ein
:
Dank der Typinferenz von Kotlin kann die explizite Typdeklaration ignoriert werden, wenn eine Zuordnung mit einem Typ vorliegt, den der Compiler eindeutig erkennen kann
Java | Kotlin |
---|---|
int i = 42; | var i = 42 ( oder var i : Int = 42 ) |
final int i = 42; | val i = 42 |
Schnelle Fakten
- Kotlin braucht nicht
;
Anweisungen beenden - Kotlin ist null-sicher
- Kotlin ist zu 100% mit Java kompatibel
- Kotlin hat keine Grundelemente (optimiert jedoch, falls möglich, seine Gegenstücke für die JVM)
- Kotlin-Klassen haben Eigenschaften, keine Felder
- Kotlin bietet Datenklassen mit automatisch generierten
equals
/hashCode
Methoden und Feldzugriffsfunktionen an - Kotlin hat nur Laufzeitausnahmen, keine markierten Ausnahmen
- Kotlin hat kein
new
Keyword . Das Erstellen von Objekten erfolgt einfach durch Aufrufen des Konstruktors wie jede andere Methode. - Kotlin unterstützt (begrenzte) Überladung von Operatoren . Der Zugriff auf einen Kartenwert kann beispielsweise wie
val a = someMap["key"]
geschrieben werden:val a = someMap["key"]
- Kotlin kann nicht nur in Bytecode für die JVM, sondern auch in Java Script kompiliert werden, sodass Sie sowohl Backend- als auch Frontend-Code in Kotlin schreiben können
- Kotlin ist vollständig kompatibel mit Java 6 , was besonders für die Unterstützung von (nicht so) alten Android-Geräten interessant ist
- Kotlin ist eine offiziell unterstützte Sprache für die Android-Entwicklung
- Kotlins Kollektionen verfügen über eine integrierte Unterscheidung zwischen veränderlichen und unveränderlichen Sammlungen .
- Kotlin unterstützt Coroutines (experimentell)
Gleichheit & Identität
Kotlin verwendet ==
für Gleichheit ( ===
Aufrufe sind intern equals
) und ===
für referenzielle Identität.
Java | Kotlin |
---|---|
a.equals(b); | a == b |
a == b; | a === b |
a != b; | a !== b |
Siehe: https://kotlinlang.org/docs/reference/equality.html
IF, TRY und andere sind Ausdrücke und keine Anweisungen
In Kotlin sind if
, try
und andere Ausdrücke (sie geben also einen Wert zurück) und keine (leeren) Anweisungen.
Kotlin hat zum Beispiel nicht Javas ternären Elvis Operator , aber Sie können so etwas schreiben:
val i = if (someBoolean) 33 else 42
Noch ungewohnter, aber ebenso ausdrucksstark ist der try
Ausdruck :
val i = try {
Integer.parseInt(someString)
}
catch (ex : Exception)
{
42
}