调用groovy父类方法 - Grails

时间:2014-10-16 09:05:32

标签: grails groovy

我有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

由于

2 个答案:

答案 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()