2009-07-14 7 views
0

Ich bin eine kleine Test-App in Groovy Codierung. Ich habe den folgenden Code.bekommen seltsame Stacktrace auf kompilieren groovy Klasse

class Address { 

static constraints = { 
    street(blank:false, maxSize:100) 
    residencenumber(min:1, max:65000) 
    addition() 
    zip() 
    city(blank:false, maxSize:100) 
    county() 
    country(blank:false, maxSize:50) 
} 

String street 
String zip 
int residencenumber 
String addition 
String city 
String county 
String country 

String toString() { 
    return street + " " + residencenumber + " " + zip + " " + city + " " + country 
} 

}

Ich bekomme diese eher kryptische Nachricht.

nojevive @ Follett: ~/dev/code/mysmallapp $ grails generieren-all-Adresse Willkommen 1.1.1 Grails - http://grails.org/ Lizenziert unter Apache Standardlizenz 2.0 Grails Hause ist eingestellt auf:/home/nojevive/dev/Grails

Basisverzeichnis:/home/nojevive/dev/code/mysmallapp Ausführen von Script /home/nojevive/dev/grails/scripts/GenerateAll.groovy Umwelt groovy.lang.MissingMethodException: No signature of method: java.lang.Integer.call() is applicable for argument types:() values: [] at Project$__clinit__closure1.doCall(Project.groovy:11) at Project$__clinit__closure1.doCall(Project.groovy) at Project.getProperty(Project.groovy) at _PluginDependencies_groovy$_run_closure6_closure53.doCall(_PluginDependencies_groovy:467) at _PluginDependencies_groovy$_run_closure6_closure53.doCall(_PluginDependencies_groovy) at _GrailsSettings_groovy$_run_closure10.doCall(_GrailsSettings_groovy:274) at _GrailsSettings_groovy$_run_closure10.call(_GrailsSettings_groovy) at _PluginDependencies_groovy$_run_closure6.doCall(_PluginDependencies_groovy:447) at _GrailsBootstrap_groovy$_run_closure1.doCall(_GrailsBootstrap_groovy:74) at _GrailsGenerate_groovy$_run_closure1.doCall(_GrailsGenerate_groovy:37) at GenerateAll$_run_closure1.doCall(GenerateAll.groovy:42) at gant.Gant$_dispatch_closure4.doCall(Gant.groovy:324) at gant.Gant$_dispatch_closure6.doCall(Gant.groovy:334) at gant.Gant$_dispatch_closure6.doCall(Gant.groovy) at gant.Gant.withBuildListeners(Gant.groovy:344) at gant.Gant.this$2$withBuildListeners(Gant.groovy) at gant.Gant$this$2$withBuildListeners.callCurrent(Unknown Source) at gant.Gant.dispatch(Gant.groovy:334) at gant.Gant.this$2$dispatch(Gant.groovy) at gant.Gant.invokeMethod(Gant.groovy) at gant.Gant.processTargets(Gant.groovy:495) at gant.Gant.processTargets(Gant.groovy:480) Error loading plugin manager: No signature of method: java.lang.Integer.call() is applicable for argument types:() values: []

Zuerst die Entwicklung stelle ich dachte vielleicht war meine Nummer außerhalb der Reichweite (Ich hatte 1000000). Dann dachte ich, dass die Nummer vielleicht ein eingebauter Name wäre, also habe ich mich in residence_number umbenannt. Aber kein Glück. Was fehlt mir hier? Ich habe jetzt alle Einschränkungen entfernt, aber immer noch die gleiche Nachricht. Es hat also nichts mit den Feldern zu tun, die ich vermute. Etwas muss gebrochen werden?

+0

ich das Projekt aufgeräumt und neu kompiliert. Habe den gleichen Fehler. Es stellte sich heraus, dass es in einer anderen Klasse einen Tippfehler gab? Wie kommt es, dass Sie die zu generierende Domänenklasse in der Befehlszeile angeben müssen und dann eine andere Klasse zu kompilieren scheint? naja, vielleicht Anfängerkämpfe ... – nojevive

+2

Ich habe vor kurzem mit Scott Davis einen Grails-Kurs gemacht. Eines der größten Dinge, die ich während des Unterrichts gelernt habe, ist, dass wenn du jemals einen wirklich seltsamen Fehler bekommst, der einfach keinen Sinn macht, eine saubere Wiederherstellung deines Projekts zu machen. Ungefähr 90% der Zeit war etwas nicht mehr synchron und musste nur neu kompiliert werden. –

Antwort

0

Ich könnte falsch sein, aber ich glaube, Sie int String sind hinzufügen. Ich Versuchen:

street + " " + residencenumber.toString() +...
+0

Das habe ich schon probiert, ich habe alles nach "Straße" abgehackt, aber ohne Erfolg. – nojevive

+0

ja, es war ein langer Schuss. –

1

Ich weiß, Sie haben dieses Problem gelöst, aber ein schöner Weg, um die toString zu tun ist:

String toString() { 
    "$street $residencenumber $zip $city $country" 
} 
+0

danke für den Tipp. – nojevive

+0

Tim, unterstützt Java '$' für Strings oder einfach nur groovy? – raffian

+0

@SAFX Einfach groovy. –

Verwandte Themen