| 

.NET C# Java Javascript Exception

Einfache Frage zur Groovy Syntax

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


Einfache Frage zur Groovy Syntax

toom - 06.04.2009 23:17
Ich bin gerade ein Grailsbuch am lesen und habe konkret eine Frage zur Groovy-Sprache. Ich verstehe folgende Syntax eines Custom-Validators nicht

class User { 
    static constraints = { 
        password(unique:true, length:5..15, validator:{val, obj -> 
            if(val?.equalsIgnoreCase(obj.firstName)) { 
                return false 
            } 
        }) 
    } 
}

Um genau zu sein ist mir folgender Teil nicht klar
"val?.equalsIgnoreCase"

Was bedeutet hier genau das "?" ?
Und zweitens woher weiss der Validator, was er für die Variablen val und obj einsetzen muss?


Re: Einfache Frage zur Groovy Syntax

vawalda - 07.04.2009 00:18
Servus,

@Was bedeutet hier genau das "?" ?
Der "?."-Operator wird zum sicheren dereferenzieren verwendet. Hier werden NullPointer abgefangen:

def map = [innermap1:[something:10]]

// hier gibts kein Problem weil alle Variablen referenziert sind
assert map.innermap1.something == 10

// hier gäbe es eine NullPointerException da innermap2 nicht existiert 
assert map.innermap2?.something ==  null

// wahlweise lässt sich das Ganze auch mit einem try-catch-Block abfangen
try {
      map.innermap2.something ==  null
} catch (NullPointerException ex) {}

In den meisten Fällen benötigt man keine explizite Fehlerbehandlung für den NullPointer, sondern will den potentiellen Fehler nur abfangen,
was sich mit dem "?."-Operator elegant, kurz und gut lesbar machen lässt.

Das ist typisch Groovy ;)

@Und zweitens woher weiss der Validator, was er für die Variablen val und obj einsetzen muss?
Hier gibt's mehr zu Validatoren


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "Einfache Frage zur Groovy Syntax" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.