我有Grails服务,
家长班:
class BarService{
def fetchData(params) {
return fooData.toString()
}
}
儿童班:
class FooService extends BarService{
def fetchData(params) {
def fooData = super.fetchData(params) //this will call the BarService method
return fooData
}
}
这是正确的常规方式吗?因为对我来说这看起来像Java
由于
答案 0 :(得分:7)
根据您的示例,除了删除可选的return
关键字之外,没有太多可以做的事情:
// Parent Class:
class BarService{
def fetchData(params) {
params.fooData.toString()
}
}
// Child Class:
class FooService extends BarService{
def fetchData(params) {
super.fetchData params
}
}
assert new FooService().fetchData([fooData: 900]) == "900"
答案 1 :(得分:0)
“return”关键字不是问题(正如你在这里看到的那样 - https://groovyconsole.appspot.com/edit/5158539458772992)。如果你得到一个“null”,问题是代码:
return fooData.toString()
应该像@WillP所说的那样(可选择“返回”关键字):
return param.fooData.toString()