Mémo pour la migration de Java vers Kotlin

** Introduction **

kotlin est devenu la langue officielle d'Android, et il semble que nous allons développer davantage avec kotlin à partir de maintenant. J'ai eu l'occasion de remplacer quelques classes java par kotlin au travail Notez comment vous avez réparé la pièce qui ne fonctionnait pas avec le remplacement par lots. Étant donné que le développement Android en est encore à sa première année, sachez que certaines parties peuvent ne pas être atteintes.

référence

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

Ce que j'ai fait

** Effectuer le remplacement des lots **

Tout d'abord, sélectionnez convertir le fichier Java en fichier Kotlin dans le menu Code.

Surtout, il le remplacera bien.

** Corrigez la description après le retour @ ~ **

Le retour de base est utilisé lors de la sortie d'une méthode Il semble que s'il est décrit dans le lambda, il ne jugera pas correctement s'il faut quitter la méthode ou le lambda. Si vous tapez @ après le retour, le bon sortira comme candidat.

** Ajouter @JvmStatic à la méthode statique **

C'est un correctif pour permettre à java d'accéder aux méthodes statiques de kotlin.

** Prenez la variable membre m **

Si vous le renommez avec la fonction IDE, il n'y a pas d'erreur que le travail manuel, alors utilisez-le.

** Corrigez toute description de "!!" dans l'appel aux membres **

Cela sera fait même si le membre est nul, donc corrigez-le. Il existe les méthodes suivantes.

** Modifiez pour que les variables avec "!!" ne soient pas passées comme arguments de fonction **

Avant correction.kt


hoge.fuga(piyo!!)

modifié.kt


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

** Modification de la propriété paresseuse où @BindDrawable est utilisé **

Exemple.kt


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

** Spécifiez et convertissez explicitement **

Avant correction.kt


bundle.getLong(hogehoge) != 0)

modifié.kt


bundle.getLong(hogehoge) != 0L)

** Remplacez var par val si possible **

Je pense qu'il est possible de prendre des mesures telles que l'initialisation du retard en utilisant la propriété lazy pour les lieux qui sont initialisés par onCreate etc.

** Interne sera ouvert au public dans le même module, alors rendez-le privé si vous n'en avez pas besoin **

internal -> private

** Changer en tant que? Si nécessaire **

La partie où findFragmentByTag est effectué, etc.

** Une tonne n'est pas automatiquement convertie **

Remplacez par une seule tonne en utilisant le mot-clé object

** Les paramètres inutilisés dans l'expression lambda sont renommés "_" ou supprimés **

Cette fois, nous avons également remanié.

à la fin

Il semble y avoir d'autres corrections, mais c'est tout pour cette fois. De plus, je le mettrai à jour lorsque de nouvelles corrections sortiront.

Recommended Posts

Mémo pour la migration de Java vers Kotlin
Migration de Cobol vers JAVA
De Java à VB.NET - Écriture de notes de contraste
Changements de Java 8 à Java 11
Somme de Java_1 à 100
(Mémo) Java pour instruction
Paramètres initiaux pour la réécriture de projets Java sur Kotlin
Nouvelles fonctionnalités de Java7 à Java8
Connectez-vous de Java à PostgreSQL
[Java] Plates-formes parmi lesquelles choisir pour le développement Java à partir de maintenant (2020)
De Java inefficace à Java efficace
[Mémo personnel] Grammaire Java fréquemment utilisée mise à jour de temps en temps
[Java] Mémo pour nommer les noms de classe
Classe Kotlin à envoyer aux développeurs Java
Java sera impliqué dès aujourd'hui
[Android] Convertir le code Java Android en Kotlin
[Java] Conversion d'un tableau à une liste
Mémo Java
Remarques sur la création de l'environnement de développement de Kotlin et la migration de Java vers Kotlin
Note de comparaison pour ceux qui touchent Kotlin (Android) depuis Swift (iOS) 1
kotlin & Java: Comment masquer la barre d'outils uniquement pour des fragments spécifiques
Ce à quoi j'ai pensé lorsque j'ai commencé à migrer de Java vers Kotlin
Kotlin's Class part.2 à envoyer aux développeurs Java
[Kotlin] Trois façons d'obtenir un cours depuis KClass
Introduction à Java pour la première fois # 2
Convertir toutes les applications Android (Java) en Kotlin
À propos de la procédure pour que Java fonctionne
Convertir l'heure UTC Java en heure JST
Connectez-vous de Java à MySQL à l'aide d'Eclipse
De l'installation d'Eclipse à l'exécution de Java (PHP)
Introduction à kotlin pour les développeurs iOS ⑥ ー création de kotlin
Mémo de méthode de surveillance des changements de répertoire (Java, Kotlin)
Publier sur Slack à partir de Play Framework 2.8 (Java)
Java: Comment envoyer des valeurs du servlet au servlet
[Java] Flux du code source à l'exécution
Conseils d'interopérabilité avec Kotlin à envoyer aux développeurs Java
Introduction à la surveillance à partir de Java Touching Prometheus
Java, pour instruction / while à partir du débutant
Précautions lors de la migration de VB6.0 vers JAVA
Conversion de type du type java Big Decimal au type String
Code Java qui ne peut pas être utilisé depuis Kotlin (pour les sessions d'étude en interne)
Kotlin vs Java: quel langage de programmation choisir pour votre application Android
java quoi que ce soit mémo
[Java] Comment tester s'il est nul dans JUnit
[Java] De deux listes à une liste de tableaux
Fonctions Kotlin et lambdas à envoyer aux développeurs Java
Spécifier les options de compilation Java / Kotlin pour les applications Android
Exécuter R à partir de Java Je veux exécuter rJava
Mémo Java Silver
Pour l'apprentissage JAVA (2018-03-16-01)
Migration d'Eclipse vers IntelliJ (en cours)
Présentation de Kotlin à un projet Java Maven existant
Connectez-vous à Aurora (MySQL) depuis une application Java
java, mémo maven
Résumé des points qui m'inquiétaient lors de la migration de Java vers Kotlin
Pour devenir programmeur VB.net depuis une boutique Java
Comment obtenir une classe depuis Element en Java
Remarque sur Java SE 7
Mémo de migration MySQL (1)
IDE 2017 pour Java