如果你在grails項目中有一個域類,你也可以使用getter和setter來寫或讀它們。在grails中使用getter和setter?
例如域類書有屬性:
String author
在控制器,你已經一本書,你要設置的作者這本書: 這適用於直接訪問屬性或getter和儘管他們不在課堂上
book.author = "Mike Miller"
book.setAuthor("Mike Miller")
什麼是獲取和設置在常規& Grails的屬性的首選方法是什麼?
如果你在grails項目中有一個域類,你也可以使用getter和setter來寫或讀它們。在grails中使用getter和setter?
例如域類書有屬性:
String author
在控制器,你已經一本書,你要設置的作者這本書: 這適用於直接訪問屬性或getter和儘管他們不在課堂上
book.author = "Mike Miller"
book.setAuthor("Mike Miller")
什麼是獲取和設置在常規& Grails的屬性的首選方法是什麼?
它們是一樣的。當您擁有一個像String author
這樣的非範圍字段時,Groovy編譯器將該字段設置爲私有,併爲其創建一個getter和setter。它不會覆蓋現有的方法,所以您可以定義自己的設置和/或獲取它是否不僅僅是設置和獲取值。
book.author = "Mike Miller"
是用於調用setter的Groovy語法糖,就像String authorName = book.author
是調用getter的語法糖。要看到這個,編輯這個類並添加一個setter或getter並添加一個println,例如
void setAuthor(String a) {
println "Setting author to '$a', was '$author'"
author = a
}
可以使用反編譯查看生成的代碼 - 我建議JD-GUI,http://java.decompiler.free.fr/?q=jdgui
還有就是兩者之間沒有實際的區別,因爲它們都向下編譯成相同的代碼。 對使用不不必擔心getter和setter的樣板代碼的Grails的好處,所以我強烈建議下面的代碼,因爲它提高可讀性和效率:
book.author = "Mike Miller"