Migrons pour rendre Java plus confortable

Ceci est un article pour vous dire que j'étais très content de la transition de Java vers Kotlin.

Inconvénients de Java

J'avais l'habitude de programmer en Java il y a quelque temps. Mais Java a ses inconvénients. C'est, par exemple:

: avertissement: il s'agit d'un article sur la migration depuis Java. JavaScript est un langage complètement différent. S'il vous plaît soyez prudente. NullPointerException L'API peut renvoyer null comme valeur de retour ou passer null comme argument. Le premier peut être évité en utilisant la classe Optional ajoutée dans Java 8, mais le second ne peut pas être fait. Vous pouvez obtenir des erreurs d'exécution, mais malheureusement, vous n'obtenez pas d'erreurs de compilation.

Description redondante

Description du type

Lors de la déclaration d'une variable, décrivez le type tel que List <String> words. Cependant, ce serait bien si nous pouvions le déduire. Vous pouvez maintenant utiliser var, mais vous ne pouvez pas le faire pour les champs d'instance, etc.

A propos de l'orientation des objets

En Java, vous devez écrire un getter / setter pour chaque encapsulation, ce qui est un peu redondant. Les constructeurs de classes et les surcharges sont assez fastidieux.

À propos de la programmation fonctionnelle

En Java, lors de la création d'une méthode (fonction d'ordre supérieur) qui reçoit une fonction, telle que Function <T, R> Vous devez écrire un type légèrement plus long. Il a une convention de dénomination fixe, mais il est toujours difficile à lire.

Éléments à prendre en compte lors de la migration

Choses dont il faut se rappeler

Si la grammaire était complètement différente lors de la migration de la langue, elle ne vous serait pas familière. Il peut s'agir de programmation dynamique ou fonctionnelle.

Pouvoir migrer petit à petit

Si le nouveau langage de programmation de destination est complètement incompatible, cela prendra beaucoup de temps. Si possible, j'aimerais que vous utilisiez les programmes Java existants.

C'est vrai, Kotlin!

null coffre-fort

Kotlin sépare les types qui peuvent contenir null et les types qui n'en contiennent pas. Chaîne? Peut contenir null. String ne peut pas contenir null.

Description concise

En Java, les classes suivantes

public class Pen {
    private int ink;
    
    public Pen(int ink) {
        setInk(ink);
    }

    public int getInk() {return ink;}
    public void setInk(int ink) {
        if (ink < 0)
            throw new IllegalArgumentException("L'argument est égal ou inférieur à 0. Valeur spécifiée:" + ink);
        this.ink = ink;
    }
}

Chez Kotlin

class Pen(ink: Int = 0) {
    var ink:Int = ink
       set(value) {
            if (ink < 0)
                throw IllegalArgumentException("L'argument est égal ou inférieur à 0. Valeur spécifiée:${value}")
            field = value
        }
}

Appelez simplement. Si le passeur n'est pas coché,

class Pen(var ink:Int)

Seulement. Si vous suivez les conventions de dénomination getXXX et setXXX, vous pouvez y accéder comme un champ comme pen.ink. À propos, getter / setter est généré au moment de la compilation pour le champ défini précédemment dans Kotlin.

Vous pouvez omettre la partie : Int du type de variable en l'initialisant ensemble. Pour la programmation fonctionnelle, String-> Int est aussi simple que Haskell.

Kotlin peut coexister avec Java

En fait, Kotlin est converti en fichier de classe lors de sa compilation. En d'autres termes, il fonctionne sur JVM comme Java. Kotlin et Java peuvent coexister, et Kotlin peut utiliser des bibliothèques Java, en hériter, et vice versa.

À la fin

J'utilise un IDE appelé IntelliJ. Il a une fonction pour convertir Java en Kotlin (fichiers existants et copier / coller), ce qui est très utile. Les langages qui fonctionnent sur JVM incluent Scala, Groovy et Ruby (jRuby), mais je ne suis pas très familier avec la syntaxe de Ruby, Scala est lent à compiler et Groovy a choisi Kotlin parce qu'il est dynamique. Maintenant, allons ** pour ** migrer ** vers Kotlin ** (Dajare).

Recommended Posts

Migrons pour rendre Java plus confortable
Couverture de code Java plus confortable avec Jacoco 0.8.0
Java - Comment créer JTable
Comment créer un conteneur Java
Comment créer un tableau Java
Interface Essayez de créer un problème Java TypeScript 7-3
Comment créer un résumé de calendrier Java
Facile à créer Slack Bot avec Java
Comment créer un robot Discord (Java)
[Java] Les débutants veulent faire des rencontres. 1er
Étudions Java
J'ai essayé de faire une authentification de base avec Java
Je l'ai fait en Java pour toujours rendre (a == 1 && a == 2 && a == 3) vrai
Migrer de Java vers Kotlin côté serveur + Spring-boot
Comment rendre la logique de vérification en double plus lisible
Je voulais que (a == 1 && a == 2 && a == 3) vrai en Java
Opération de chaîne de caractères Essayez de changer le problème Java en TypeScript 9-3
[Java] Introduction à Java
Introduction à Java
[Petite histoire] J'ai essayé de rendre java ArrayList un peu plus pratique
Facile à créer LINE BOT avec Java Servlet
[Java] Comment rendre plusieurs boucles for uniques
Initialisation de for Essayez de changer le problème Java en TypeScript 5-4
Comment faire un test unitaire Java (JUnit & Mockito & PowerMock)
Comment organiser les informations pour rationaliser l'apprentissage de la programmation
[Bases de Java] Créons un triangle avec une instruction for
Faisons un robot! "Une simple démo de Java AWT Robot"
J'ai essayé de créer une fonction de connexion avec Java
J'avais l'habitude de faire nc (netcat) avec JAVA normalement
[Introduction au développement d'applications Android] Faisons un compteur
Faites un blackjack avec Java
Changements de Java 8 à Java 11
Somme de Java_1 à 100
Migrer de JUnit 4 vers JUnit 5
[Java] Connectez-vous à MySQL
Faisons ressembler à des rails (vue)
Améliorations de Kotlin à Java
Comment faire un pot ombré
De Java à Ruby !!
Raclons avec Java! !!
Introduction à la commande java
Écrivons comment créer une API avec SpringBoot + Docker à partir de 0
Faisons une application de calcul avec Java ~ Afficher la fenêtre de l'application
[Débutant] Essayez de créer un jeu RPG simple avec Java ①
Je veux faire une liste avec kotlin et java!
Je voulais juste créer une propriété réactive en Java
Je veux créer une fonction avec kotlin et java!
J'ai essayé de faire coexister Java Optional et la clause de garde
J'ai créé un client RESAS-API en Java