© Excellent backgrounds/Shutterstock.com
Java Magazin
Von Java zu Kotlin: Eine Einführung

Aller guten Dinge sind neun

Kotlin und Java können ohne Probleme zusammen verwendet werden. Dennoch gibt es in Kotlin einige Sprachelemente, die sich nicht eins zu eins nach Java übersetzen lassen. Der Artikel geht auf die Unterschiede in den verschiedenen Bereichen ein und zeigt in neun Lektionen, worauf bei der Verwendung von beiden Sprachen zu achten ist.

Alexander Hanschke


Wir gehen von einem bestehenden Java-Projekt auf Basis von Gradle aus, das um Kotlin-Code erweitert werden soll. Das Projekt folgt der von Maven und Gradle bekannten Struktur. Unter src/main/java liegen die Java-Quelldateien. Unterhalb des Pakets de.techdev existiert eine Klasse App. Wie von Java gefordert, bildet die Verzeichnisstruktur die Paketstruktur direkt nach. Das heißt, die Datei App.java ist im Dateisystem in dem Ordner src/main/java/de/techdev zu finden. Um unserem Projekt nun Kotlin hinzuzufügen, passen wir die Build-Datei an, wie in Listing 1 dargestellt.

Listing 1: „build.gradle“group 'de.techdev'version '1.0.0' buildscript { ext.kotlin_version = '1.0.5-2'  repositories { jcenter() }  dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" }} apply plugin: 'java' apply plugin: 'kotlin' repositories { jcenter()} dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"}

Die Kotlin-Standardbibliothek wird einfach als Abhängigkeit definiert. Zusätzlich verwenden wir das Kotlin-Gradle-Plug-in, das sich um das Kompilieren der Quelldateien und Module kümmert. Um zu testen, ob alles funktioniert, legen wir zuerst eine Datei scratchpad.kt mit der Funktion main an. Analog zu den Java-Quellcodedateien erzeugen wir den Ordner src/main/kotlin für den Kotlin-Quellcode. Das Paket de.techdev behalten wir bei und erstellen die Datei mit der globalen Funktion main, wie im folgenden Listing dargestellt (src/main/kotlin/de/techdev/scratchpad.kt):

fun main(args: Array) { println(args.joinToString())}

Wie zuvor haben wir die Dateien analog zu ihrer Organisation im Verzeichnis abgelegt. Das ist in Kotlin aber gar nicht zwingend nötig. Anders als Java verwendet Kotlin Pakete nicht für die Zugriffskontrolle, sondern zur Vergabe von Namensräumen. Wir könnten das Paket auch ebenso de.techdev.foo nennen, ohne die Struktur anzupassen. Das erzeugt zwar eine Warnung der IDE, der Code kompiliert dennoch. In der Regel empfiehlt es sich aber, die Pakete analog zur Verzeichnisstruktur anzulegen. Gerade bei einer Migration bestehender Java-Projekte hin zu Kotlin kann das andernfalls für unangenehme Überraschungen sorgen.

Lektion Nr. 1: Funktionen

In der Funktion main können wir nun alle Typen aus der Java-Standardbibliothek direkt verwenden, gegebenenfalls nach einem vorherigen Import. Um nun die Funktion aus Java heraus aufzurufen, sieht der Code folgendermaßen aus (src/main/java/de/techdev/App.java):

public cla...

Java Magazin
Von Java zu Kotlin: Eine Einführung

Aller guten Dinge sind neun

Kotlin und Java können ohne Probleme zusammen verwendet werden. Dennoch gibt es in Kotlin einige Sprachelemente, die sich nicht eins zu eins nach Java übersetzen lassen. Der Artikel geht auf die Unterschiede in den verschiedenen Bereichen ein und zeigt in neun Lektionen, worauf bei der Verwendung von beiden Sprachen zu achten ist.

Alexander Hanschke


Wir gehen von einem bestehenden Java-Projekt auf Basis von Gradle aus, das um Kotlin-Code erweitert werden soll. Das Projekt folgt der von Maven und Gradle bekannten Struktur. Unter src/main/java liegen die Java-Quelldateien. Unterhalb des Pakets de.techdev existiert eine Klasse App. Wie von Java gefordert, bildet die Verzeichnisstruktur die Paketstruktur direkt nach. Das heißt, die Datei App.java ist im Dateisystem in dem Ordner src/main/java/de/techdev zu finden. Um unserem Projekt nun Kotlin hinzuzufügen, passen wir die Build-Datei an, wie in Listing 1 dargestellt.

Listing 1: „build.gradle“group 'de.techdev'version '1.0.0' buildscript { ext.kotlin_version = '1.0.5-2'  repositories { jcenter() }  dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" }} apply plugin: 'java' apply plugin: 'kotlin' repositories { jcenter()} dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"}

Die Kotlin-Standardbibliothek wird einfach als Abhängigkeit definiert. Zusätzlich verwenden wir das Kotlin-Gradle-Plug-in, das sich um das Kompilieren der Quelldateien und Module kümmert. Um zu testen, ob alles funktioniert, legen wir zuerst eine Datei scratchpad.kt mit der Funktion main an. Analog zu den Java-Quellcodedateien erzeugen wir den Ordner src/main/kotlin für den Kotlin-Quellcode. Das Paket de.techdev behalten wir bei und erstellen die Datei mit der globalen Funktion main, wie im folgenden Listing dargestellt (src/main/kotlin/de/techdev/scratchpad.kt):

fun main(args: Array) { println(args.joinToString())}

Wie zuvor haben wir die Dateien analog zu ihrer Organisation im Verzeichnis abgelegt. Das ist in Kotlin aber gar nicht zwingend nötig. Anders als Java verwendet Kotlin Pakete nicht für die Zugriffskontrolle, sondern zur Vergabe von Namensräumen. Wir könnten das Paket auch ebenso de.techdev.foo nennen, ohne die Struktur anzupassen. Das erzeugt zwar eine Warnung der IDE, der Code kompiliert dennoch. In der Regel empfiehlt es sich aber, die Pakete analog zur Verzeichnisstruktur anzulegen. Gerade bei einer Migration bestehender Java-Projekte hin zu Kotlin kann das andernfalls für unangenehme Überraschungen sorgen.

Lektion Nr. 1: Funktionen

In der Funktion main können wir nun alle Typen aus der Java-Standardbibliothek direkt verwenden, gegebenenfalls nach einem vorherigen Import. Um nun die Funktion aus Java heraus aufzurufen, sieht der Code folgendermaßen aus (src/main/java/de/techdev/App.java):

public cla...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang