2009-09-30 86 views
3

在Grails中,屬性是一個保留字嗎?也就是說,我可以命名域名類別Property,並且其擁有者通過properties引用它嗎?例如:在Grails中,「屬性」是一個保留字嗎?

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

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

當我嘗試添加PropertyThing我得到的錯誤:

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) 

是否有保留字的Grails的名單?

回答

3

我不確定Property是保留的,但properties專門用於域類,因爲它用於data binding。當您更改,會發生什麼:

static hasMany = [properties: Property] 

喜歡的東西

static hasMany = [myProperties: Property] 
-1

雖然我不能find any file with the name Property in grails,明智的做法是不要使用這樣一個普通的詞 - 誰知道什麼時候它可能會被保留下來?

如果你只是用類似BlahProperty的東西來預先給你的類名稱,會發生什麼?

0

Grails是一個Web框架。一般來說,只有語言真的有保留字。 Groovy的保留字都是Java保留的,還有其他一些保留字。完整列表顯示here

您會注意到它確實包含了「屬性」,這對我來說是一個很大的驚喜,因爲我不知道它的用途,我認爲我認爲Groovy相當好。也許它保留供將來使用?