是否使用grails中的getter和setter?

whi*_*exx 7 getter setter grails groovy

如果你在grails项目中有一个域类,你也可以使用getter和setter来编写或读取它们.

例如,域类Book具有以下属性:

String author
Run Code Online (Sandbox Code Playgroud)

在控制器中你有一本书,你想为这本书设置作者:这可以直接访问属性,也可以使用getter和setter方法,尽管它们不在类中.

book.author = "Mike Miller"
book.setAuthor("Mike Miller")
Run Code Online (Sandbox Code Playgroud)

在groovy和grails中获取和设置属性的首选方法是什么?

Bur*_*ith 15

他们是一样的.当你有一个非范围字段时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
}
Run Code Online (Sandbox Code Playgroud)

您可以使用反编译器查看生成的代码 - 我推荐JD-GUI,http://java.decompiler.free.fr/?q = jdgui