如果您在 grails 项目中有一个域类,您还可以使用 getter 和 setter 来写入或读取它们。
例如域类 Book 具有属性:
String author
在控制器中,你有一本书,你想设置这本书的作者:
这适用于直接访问属性或使用 getter 和 setter 方法,尽管它们不在类中。
book.author = "Mike Miller"
book.setAuthor("Mike Miller")
在 groovy 和 grails 中获取和设置属性的首选方法是什么?
他们是一样的。当你有一个无作用域的字段时,例如String author
,Groovy 编译器将该字段设为私有并为其创建一个 getter 和 setter。但它不会覆盖现有方法,因此您可以定义自己的 set 和/或 get(如果它不仅仅是设置和获取值)。
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 http://java.decompiler.free.fr/?q=jdgui
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)