Memo für die Migration von Java nach Kotlin

** Einführung **

kotlin ist die offizielle Sprache von Android geworden, und es scheint, dass wir von nun an mehr mit kotlin entwickeln werden. Ich hatte die Gelegenheit, einige Java-Klassen bei der Arbeit durch Kotlin zu ersetzen Notieren Sie sich, wie Sie das Teil repariert haben, das beim Batch-Austausch nicht funktioniert hat. Da sich die Android-Entwicklung noch im ersten Jahr befindet, verstehen Sie bitte, dass einige Teile möglicherweise nicht erreichbar sind.

Referenz

https://www.slideshare.net/kenichitatsuhama/java-kotlin

Was ich getan habe

** Chargenwechsel durchführen **

Wählen Sie zunächst im Menü Code die Option Java-Datei in Kotlin-Datei konvertieren aus.

Meistens wird es es gut ersetzen.

** Korrigieren Sie die Beschreibung nach der Rückgabe @ ~ **

Die grundlegende Rückgabe wird beim Beenden einer Methode verwendet Es scheint, dass, wenn es im Lambda geschrieben ist, es nicht richtig beurteilt, ob die Methode oder das Lambda beendet werden soll. Wenn Sie nach der Rückgabe @ eingeben, wird der richtige als Kandidat ausgegeben.

** @JvmStatic zur statischen Methode hinzufügen **

Dies ist ein Fix, mit dem Java auf die statischen Methoden von kotlin zugreifen kann.

** Nimm die Mitgliedsvariable m **

Wenn Sie es mit der Funktion IDE umbenennen, gibt es keinen Fehler als manuelle Arbeit. Verwenden Sie es also.

** Korrigieren Sie die Beschreibung von "!!" im Mitgliederaufruf **

Dies wird auch dann durchgeführt, wenn das Mitglied null ist. Korrigieren Sie es also. Es gibt die folgenden Methoden.

** Ändern Sie dies so, dass Variablen mit "!!" nicht als Funktionsargumente übergeben werden **

Vor der Korrektur.kt


hoge.fuga(piyo!!)

Überarbeitet.kt


piyo?.let {
hoge.fuga(it)
}

** Wechseln Sie zu Lazy Property, wo @BindDrawable verwendet wird **

Beispiel.kt


internal val icon: Drawable? by lazy {
ResourcesCompat.getDrawable(resources, R.drawable.icon, null)
}

** Explizit angeben und konvertieren **

Vor der Korrektur.kt


bundle.getLong(hogehoge) != 0)

Überarbeitet.kt


bundle.getLong(hogehoge) != 0L)

** Ändern Sie var nach Möglichkeit in val **

Ich denke, dass es möglich ist, Maßnahmen wie die Verzögerung der Initialisierung mithilfe der Lazy-Eigenschaft für Orte zu ergreifen, die von onCreate usw. initialisiert werden.

** Intern wird im selben Modul für die Öffentlichkeit zugänglich sein. Machen Sie es also privat, wenn Sie es nicht benötigen **

internal -> private

** Ändern Sie als? Falls erforderlich **

Der Teil, in dem findFragmentByTag ausgeführt wird usw.

** Einzelne Tonne wird nicht automatisch konvertiert **

Ersetzen Sie durch eine einzelne Tonne mit dem Objektschlüsselwort

** Nicht verwendete Parameter im Lambda-Ausdruck werden in "_" umbenannt oder entfernt **

Diesmal haben wir auch überarbeitet.

schließlich

Es scheint andere Korrekturen zu geben, aber das ist alles für diese Zeit. Außerdem werde ich es aktualisieren, wenn neue Korrekturen herauskommen.

Recommended Posts

Memo für die Migration von Java nach Kotlin
Migration von Cobol nach JAVA
Von Java zu VB.NET-Writing Kontrastmemo-
Änderungen von Java 8 zu Java 11
Summe von Java_1 bis 100
(Memo) Java für Anweisung
Grundeinstellungen für das Umschreiben von Java-Projekten in Kotlin
Neue Funktionen von Java7 bis Java8
Stellen Sie eine Verbindung von Java zu PostgreSQL her
[Java] Plattformen zur Auswahl für die Java-Entwicklung ab sofort (2020)
Von ineffektivem Java zu effektivem Java
[Persönliches Memo] Häufig verwendete Java-Grammatik, die von Zeit zu Zeit aktualisiert wird
[Java] Memo zum Benennen von Klassennamen
Kotlin-Klasse zum Senden an Java-Entwickler
Java soll ab heute dabei sein
[Android] Konvertieren Sie Android Java-Code in Kotlin
[Java] Konvertierung von Array zu Liste
Java-Memo
Hinweise zum Erstellen der Kotlin-Entwicklungsumgebung und zur Migration von Java nach Kotlin
Vergleichsnotiz für diejenigen, die Kotlin (Android) von Swift (iOS) 1 berühren
kotlin & Java: So blenden Sie die Symbolleiste nur für bestimmte Fragmente aus
Woran ich dachte, als ich anfing, von Java nach Kotlin zu migrieren
Kotlins Klasse Teil 2 zum Senden an Java-Entwickler
[Kotlin] Drei Möglichkeiten, um Klasse von KClass zu bekommen
Einführung in Java zum ersten Mal # 2
Konvertieren Sie alle Android-Apps (Java) in Kotlin
Über das Verfahren, damit Java funktioniert
Konvertieren Sie von der Java-UTC-Zeit in die JST-Zeit
Stellen Sie mit Eclipse eine Verbindung von Java zu MySQL her
Von der Installation von Eclipse bis zur Ausführung von Java (PHP)
Einführung in Kotlin für iOS-Entwickler lin ー Kotlin-Erstellung
Memo zur Überwachungsmethode für Verzeichnisänderungen (Java, Kotlin)
Post to Slack von Play Framework 2.8 (Java)
Java: So senden Sie Werte von Servlet zu Servlet
[Java] Fluss vom Quellcode zur Ausführung
Tipps zur Interoperabilität mit Kotlin zum Senden an Java-Entwickler
Einführung in die Überwachung von Java Touching Prometheus
Java, für Anweisung / while-Anweisung ab Anfänger
Vorsichtsmaßnahmen bei der Migration von VB6.0 auf JAVA
Typkonvertierung vom Java Big Decimal-Typ zum String-Typ
Java-Code, der nicht von Kotlin verwendet werden kann (für interne Lernsitzungen)
Kotlin vs. Java: Welche Programmiersprache Sie für Ihre Android-App auswählen sollten
Java alles Memo
[Java] So testen Sie, ob es in JUnit null ist
[Java] Von zwei Listen zu einer Array-Liste
Kotlin-Funktionen und Lambdas zum Senden an Java-Entwickler
Geben Sie Optionen für die Java / Kotlin-Kompilierungszeit für Android-Apps an
R von Java ausführen Ich möchte rJava ausführen
Java Silver Memo
Für JAVA-Lernen (2018-03-16-01)
Migration von Eclipse zu IntelliJ (unterwegs)
Einführung in Kotlin in ein bestehendes Java Maven-Projekt
Stellen Sie über eine Java-Anwendung eine Verbindung zu Aurora (MySQL) her
Java, Maven Memo
Zusammenfassung der Punkte, über die ich mir bei der Migration von Java nach Kotlin Sorgen gemacht habe
Um ein VB.net-Programmierer aus einem Java-Shop zu werden
So erhalten Sie eine Klasse von Element in Java
Java SE 7 Hinweis
MySQL-Migrationsnotiz (1)
2017 IDE für Java