groovy-lecture/live/klassen.md

1.2 KiB

Klassen und Closures:

Gegeben sei eine simple Klasse Person, die als Attribute den Namen und das Alter einer Person erhält.

class Person{
    def name
    def alter
}

Kopieren sie den obrigen Code, erstellen sie folgende drei Objekte dieser Klasse und packen sie diese in eine Liste:

Name Alter
Max 12
Karl 40
Laura 23

Erweitern sie die Klasse nicht, sondern nehmen Sie sie genauso wie sie ist. Wenden sie nun zwei Closures auf diese Liste an, um alle Personen, die volljährig sind in eine Liste zu schreiben. Die Namen sollen diesmal aber groß geschrieben sein. Ihre Ausgabe sollte also wie folgt aussehen:

[KARL, LAURA]

Tipp: Sie werden sowohl die findAll(), als auch die collect() Methode auf Listen brauchen. Beide Methoden nehmen ein Closure als Argument an.
Die findAll() Methode prüft alle Elemente einer Liste auf eine Bedingung und gibt eine neue Liste aus mit allen Elementen, auf die die Bedingung zutrifft.
Die collect() Methode wird verwendet, um eine Liste oder eine Sammlung zu transformieren und gibt eine neue Liste mit den transformierten Elementen aus.