【问题标题】:Call groovy parent class method - Grails调用 groovy 父类方法 - Grails
【发布时间】:2015-05-22 03:12:31
【问题描述】:

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

谢谢

【问题讨论】:

    标签: grails groovy


    【解决方案1】:

    根据您的示例,除了删除可选的 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"
    

    【讨论】:

      【解决方案2】:

      “return”关键字不是问题(你可以在这里看到 - https://groovyconsole.appspot.com/edit/5158539458772992)。如果您得到“null”,则问题出在以下代码:

      return fooData.toString()
      

      应该像@WillP 所说的(可选“return”键):

      return param.fooData.toString()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-02-14
        • 1970-01-01
        • 2011-01-03
        • 1970-01-01
        • 2017-11-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多