2009-09-30 7 views
3

Dans Grails, "propriété" est-elle un mot réservé? En d'autres termes, puis-je nommer une classe de domaine Property et son propriétaire la référencer par properties? Exemple:Dans Grails, "propriété" est-elle un mot réservé?

class Thing { 
    static hasMany = [properties: Property] 
} 

class Property { 
    static belongsTo = [thing: Thing] 
} 

Lorsque je tente d'ajouter un Property à un Thing je reçois l'erreur:

Exception thrown: No signature of method: org.codehaus.groovy.grails.web.binding.DataBindingLazyMetaPropertyMap.add() is applicable for argument types: (Property) values: [Property : null] 

groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.grails.web.binding.DataBindingLazyMetaPropertyMap.add() is applicable for argument types: (Property) values: [Property : null] 

    at ConsoleScript10.run(ConsoleScript10:3) 

Y at-il une liste de tous les mots réservés Grails?

Répondre

3

Je ne suis pas sûr que Property est réservé, mais properties est traité spécialement pour les classes de domaine car il est utilisé pour data binding. Qu'est-ce qui se passe quand vous changez:

static hasMany = [properties: Property] 

à quelque chose comme

static hasMany = [myProperties: Property] 
-1

Bien que je ne peux pas find any file with the name Property in grails, il est sage de ne pas utiliser un tel mot commun - qui sait quand il pourrait devenir réservé à l'avenir? Que se passerait-il si vous préfixiez votre nom de classe avec quelque chose, comme BlahProperty?

0

Grails est un framework web. En général, seules les langues ont vraiment des mots réservés. Les mots réservés de Groovy sont tous ceux réservés par Java, plus quelques autres. La liste complète est affichée here.

Vous remarquerez qu'il inclut "propriété", ce qui a été une grande surprise pour moi, car je ne sais pas à quoi il sert, et je pense/pensé que je connais assez bien Groovy. Peut-être est-ce réservé pour un usage futur?

Questions connexes