2009-07-14 7 views
0

Je suis en train de coder une petite application de test dans Groovy. J'ai le code suivant.Obtenir une étrange pile sur la compilation de la classe groovy

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 
} 

}

Je reçois ce message plutôt cryptique.

nojevive @ Follett: ~/dev/Code/mysmallapp Grails de $ generate-toutes les adresses Bienvenue sur Grails 1.1.1 - http://grails.org/ sous licence Apache 2.0 standard Licence Grails maison est réglé sur:/home/nojevive/dev/Grails

Répertoire de base:/home/nojevive/dev/code/mysmallapp Running script /home/nojevive/dev/grails/scripts/GenerateAll.groovy Environnement défini sur le développement 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: []

d'abord je pensais mon numéro était peut-être hors de portée (J'ai eu 1000000). Alors j'ai pensé que peut-être le nombre était un nom intégré ainsi j'ai rebaptisé à residencenumber. Mais pas de chance. Qu'est-ce que j'oublie ici? J'ai maintenant supprimé toutes les contraintes, mais toujours le même message. Cela n'a donc rien à voir avec les champs. Quelque chose doit être cassé?

+0

je nettoyais le projet et recompiler. J'ai la même erreur. Il s'avère qu'il y avait une faute de frappe dans une classe anonther? Comment se fait-il que vous deviez spécifier la classe de domaine à générer-tout sur la ligne de commande et ensuite il semble compiler une autre classe? Eh bien, peut-être que les lutteurs débutants ... – nojevive

+2

J'ai pris un cours de Grails avec Scott Davis il y a un petit moment. L'une des choses les plus importantes que j'ai apprises en classe est que si jamais vous obtenez une erreur vraiment bizarre qui n'a pas de sens, faites une reconstruction propre de votre projet. Environ 90% du temps, quelque chose s'est désynchronisé et a juste besoin d'être recompilé. –

Répondre

0

Je peux me tromper mais je pense que vous ajoutez int à String. Je essayer:

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

J'ai déjà essayé, j'ai tout coupé après 'street', mais en vain. – nojevive

+0

ouais, c'était long. –

1

Je sais que vous avez résolu ce, mais une plus belle façon de faire la toString est:

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

merci pour le conseil. – nojevive

+0

Tim, Java prend-il en charge l'utilisation de '$' pour les chaînes, ou simplement groovy? – raffian

+0

@SAFX Juste groovy. –

Questions connexes