| home | suche | kontakt/johner | institut | hinweise studierende | tech-docs | blog | mindmailer |
![]() |
Scripting (Groovy)
Eine Übersicht zu Groovy ist hier zu finden, Groovy Ausarbeitung von Rene Balser und Christian Sitter.
Vorteile von Scripting (Groovy)
- dynamische Typisierung, d.h. Variablen erhalten ihren Typ durch die zuweisen eines Wertes
- sehr eng an Java gebunden
- ähnliche Syntax, wurde vereinfacht
- Java Klassen können weiterhin benutzt werden
- Unterschiede zu Java
- es müssen keine Getter und Setter für Attribute geschrieben werden
- java.io, java.util sind auomatisch importiert
- der Umhang mit Dateien, XML und SQL wurde vereinfacht
- Erweiterung der Collections
- Operatoren sind als Methode implementiert und können überschrieben werden
- Closures
Aufruf von Java Klassen in Groovy
Der Aufruf unterscheidet sich nicht zu der Java Syntax, die Java Klasse java.io.File wird mit file = new File() instanziert.
Aufruf eines Groovy Scripts in Java
Um ein Groovy Script aufzurufen, benötigen wir die lasse GroovyShell.
GroovyShell shell = new GroovyShell();
Auf der GroovyShell rufen wir die parse() Methode auf, die als Parameter unser Groovy Script erhält.
Script script = shell.parse(new File("src/package/MyScript.groovy"));
Um Variablen Werte zuzuweisen, rufen wir die binding() Methode auf dem Script auf.
script.getBinding().setVariable("zahl", 2);
script.getBinding().setVariable("value", "mustermann");
Um das Script auszuführen, dient die run() Methode.
script.run();
Strings
In Groovy gibt es zwei Artn von Strings, die Strings die wir bereits aus Java kennen nd die Groovy Strings.
Java Strings stehen in einfachen Anfühungszeichen, Bsp.
def value1 = 'Groovy rocks'
print value1
Die Groovy Strings stehen in doppelten Anführungszeichen, sie haben die Besonderheit, dass sie Variablen Ersetzung können.
def groovy = 'Groovy'
def value2 = "$groovy rocks"
print value2
Beide print Ausgaben schreiben den gleichen Text auf die Konsole.
Methoden
Auf Methoden kann zugegriffen werden, auch wenn sie erst später im Script definiert sind. Das hat den Grund, dass Groovy Script in Bytecode umgewandelt sind und sich dann nicht mehr von Java Klassen unterscheiden.
Collections und Maps
Umgang mit Collections
def myCollection = [1, 5, 78, 912]
print myCollection[0] //Ausgabe: 1
Umgang mit Maps
def myMap = ['zwei':1, 'neun': 10, 'drei':7]
pint myMap['zwei'] //Ausgabe: 1
Es gibt aber noch ein weiteres Schmankerl, ranges.
Ranges
def myIntRange = [3..71] //enthält die Zahlen von 3 bis 71
def myLetterRange = ['c'..'m'] // enthält die Buchstabe c bis m
Groovy Klassen
Um in Groovy eine Klasse zu schreiben reicht es
class myClass { }
zu schreiben. Konstruktoren, Getter und Setter Methoden für die Attribute können weggelassen werden.
