Chapitre Présentation du langage Groovy Groovy pour les développeurs Java {{ resumeCollapse ? '-' : '+' }} Résumé Cette leçon présente les principales différences avec Java et Groovy Dernière modification : Dec 08 , 2024 {{ !slideMode ? "Passer en mode diapositive" : "Passer en mode lecture" }} Groovy pour les développeurs Java Created by Sylvain Leroy ## Apprendre Groovy quand on est développeur Java ## Imports par défault Tous ces imports sont importés par défault et ne nécessitent pas d'être déclarés : * java.io.* * java.lang.* * java.math.BigDecimal * java.math.BigInteger * java.net.* * java.util.* * groovy.lang.* * groovy.util.* ## Surcharge des méthodes La surcharge n'est pas résolue statiquement mais *dynamiquement* en Groovy. *Ainsi* l'appel de méthodes est résolu en fonction de la valeur passée à l'exécution du programme. ## Création des tableaux Contrairement à Java, Groovy avant la version 3.0 ne supportait pas l'opérateur d'initialisation de tableaux. ```language-groovy // JAVA int[] array = {1, 2, 3}; // Java array initializer shorthand syntax int[] array2 = new int[] {4, 5, 6}; // Java array initializer long synta // GROOVY < 3.0 int[] array = [1, 2, 3] // GROOVY 3.0+ int[] array = [1, 2, 3] def array2 = new int[] {1, 2, 3} // Groovy 3.0+ supports the Java-style array initialization long syntax ``` ## Visibilité des champs La syntaxe suivante crée une propriété et non seulement un attribut. Une propriété est un attribut accompagné de son getter et de son setter. ```language-groovy class Person { String name } ``` ## try..resources Les blocs ARM permettant de libérer les ressources en Java 1.7+ ne sont pas supportés avant Groovy 3.0 Toutefois de nombreuses méthodes utilisant les closures permettent de s'abstraire de leur utilisation. ```language-groovy new File('/path/to/file').withReader('UTF-8') { reader -> reader.eachLine { println it } } ``` ## Lambdas Les lambdas ne sont supportés qu'avec Groovy 3.0+. ## Chaînes de caractères Groovy offre de nombreux autres syntaxes pour déclarer des chaînes de caractères. Attention les chaînes de caractères déclarées par des guillemets sont des `GString` et non des `java.lang.String`. L'utilisation de caractères dollar dans ces chaînes de caractères à un comportement différent. ## Types primitifs et wrappers Groovy utilise des objets pour *tout*. Donc les types primitifs sont boxés automatiquement. ## Opérateur == Groovy remplace le comportement de l'opérateur ==. Cet opérateur appelle désormais la méthode `equals`. # Fin de la leçon Groovy pour les développeurs Java Created by Sylvain Leroy ## Apprendre Groovy quand on est développeur Java ## Imports par défault Tous ces imports sont importés par défault et ne nécessitent pas d'être déclarés : * java.io.* * java.lang.* * java.math.BigDecimal * java.math.BigInteger * java.net.* * java.util.* * groovy.lang.* * groovy.util.* ## Surcharge des méthodes La surcharge n'est pas résolue statiquement mais *dynamiquement* en Groovy. *Ainsi* l'appel de méthodes est résolu en fonction de la valeur passée à l'exécution du programme. ## Création des tableaux Contrairement à Java, Groovy avant la version 3.0 ne supportait pas l'opérateur d'initialisation de tableaux. ```language-groovy // JAVA int[] array = {1, 2, 3}; // Java array initializer shorthand syntax int[] array2 = new int[] {4, 5, 6}; // Java array initializer long synta // GROOVY < 3.0 int[] array = [1, 2, 3] // GROOVY 3.0+ int[] array = [1, 2, 3] def array2 = new int[] {1, 2, 3} // Groovy 3.0+ supports the Java-style array initialization long syntax ``` ## Visibilité des champs La syntaxe suivante crée une propriété et non seulement un attribut. Une propriété est un attribut accompagné de son getter et de son setter. ```language-groovy class Person { String name } ``` ## try..resources Les blocs ARM permettant de libérer les ressources en Java 1.7+ ne sont pas supportés avant Groovy 3.0 Toutefois de nombreuses méthodes utilisant les closures permettent de s'abstraire de leur utilisation. ```language-groovy new File('/path/to/file').withReader('UTF-8') { reader -> reader.eachLine { println it } } ``` ## Lambdas Les lambdas ne sont supportés qu'avec Groovy 3.0+. ## Chaînes de caractères Groovy offre de nombreux autres syntaxes pour déclarer des chaînes de caractères. Attention les chaînes de caractères déclarées par des guillemets sont des `GString` et non des `java.lang.String`. L'utilisation de caractères dollar dans ces chaînes de caractères à un comportement différent. ## Types primitifs et wrappers Groovy utilise des objets pour *tout*. Donc les types primitifs sont boxés automatiquement. ## Opérateur == Groovy remplace le comportement de l'opérateur ==. Cet opérateur appelle désormais la méthode `equals`. # Fin de la leçon Slideshow Aperçu Leçon précédente Prochaine leçon Please enable JavaScript to view the comments powered by Disqus.