Groovy | |
![]() | |
Apparu en | 2007 |
---|---|
Auteur | Java Community Process |
Paradigmes | Objet, impératif |
Influencé par | Java, Python, Ruby, Smalltalk |
Système d'exploitation | Multiplate-forme |
Site Web | groovy.codehaus.org |
Groovy est le nom d'un langage de programmation orienté objet destiné à la plate-forme Java. Il constitue une alternative au langage Java pour cette plate-forme et est inspiré de Python, Ruby et Smalltalk. Il est l'objet de la spécification JSR 241.
Groovy utilise une syntaxe très proche de Java, avec des accolades, et est directement compilé, soit à la volée dynamiquement, soit classiquement avec un compilateur en bytecode.
Groovy s'intègre et est entièrement compatible avec la JVM étant donné que le bytecode est le même. Il peut donc
Groovy possède certaines caractéristiques qui le différencient du Java standard :
Voici une comparaison de Java et Groovy :
Standard Java (Java 5+)
Groovy
list = ["Rod", "Carlos", "Chris"] shorts = list.findAll { it.size() <= 4 } shorts.each { println it }
Une des caractéristiques notables de Groovy est sa gestion native des langages de balisage comme XML et HTML. Cette prise en charge permet de définir et manipuler par programmation plusieurs types de structures avec une syntaxe commune.
Exemple :
ce code Groovy…
import groovy.xml.MarkupBuilder def myXMLDoc = new MarkupBuilder() myXMLDoc.workbook { worksheet(caption:"Employees") { row(fname:"John", lname:"McDoe") row(fname:"Nancy", lname:"Davolio") } worksheet(caption:"Products") { row(name:"Veeblefeetzer", id:"sku34510") row(name:"Prune Unit Zappa", id:"sku3a550") } } println myXMLDoc
… produit le contenu XML suivant :
> caption='Employees'> fname="John" lname="McDoe" >
fname="Nancy" lname="Davolio" >
>caption='Products'> name="Veeblefeetzer" id="sku34510" >
name="Prune Unit Zappa" id="sku3a550" >
> >
print "hello word" def name='World'; println "Hello $name!"
def names = ['Jean', 'John', 'Jill'] println names.collect{ it.toUpperCase() }.sort()
def num = 2G 7.times { println "$num" num *= num }
2 4 16 256 65536 4294967296 18446744073709551616
class Person { String name String givenname int age String sex } class User extends Person { String userid String email } def titi = new User(name: 'titi') titi.userid = 'titi1412' titi.email = '[email protected]' titi.age = 40 def rominet = new Person(name: 'rominet', age: 40, sex: 'uhum') println "Hé ${rominet.name} , ici ${titi.name}, un vieux copain de promo. Ecris moi sur ${titi.email} !"