0

我有这样的 grails 服务功能

public List<Object> getfunction(def test, def test1) {
  def criteria = Test.createCriteria();
  List<Object> list= criteria.list {
      projections{
          groupProperty('state')
          rowCount()
      }
  }
}

但是我对这个函数的返回类型有点困惑,目前的实现它正在工作,但我知道它是错误的返回类型。

请建议,提前谢谢。

4

2 回答 2

2

您编写的代码可以正常工作,因为 grails 使用了 groovy,并且在 groovy 中,方法的最后一个语句用于返回。因此,除非函数类型为void,否则您在任何方法末尾写的任何内容都将返回。

例如:

String getFullName() {
    String firstName = "S"
    String lastName = "A"

    firstName + " " + lastName
}

这将自动返回连接的字符串。

于 2014-07-08T13:01:15.043 回答
0

也许这会有所帮助。以下所有内容都执行完全相同的操作:

public List<Object> getfunction(def test, def test1) {
    def criteria = Test.createCriteria();
    List<Object> list= criteria.list {
        projections{
            groupProperty('state')
            rowCount()
        }
    }
}

public List<Object> getfunction(def test, def test1) {
    def criteria = Test.createCriteria();
    List<Object> list= criteria.list {
        projections{
            groupProperty('state')
            rowCount()
        }
    }
    return list
}

public List<Object> getfunction(def test, def test1) {
    def criteria = Test.createCriteria();
    List<Object> list= criteria.list {
        projections{
            groupProperty('state')
            rowCount()
        }
    }
    list
}

public List<Object> getfunction(def test, def test1) {
    def criteria = Test.createCriteria();
    return criteria.list {
        projections{
            groupProperty('state')
            rowCount()
        }
    }
}

public List<Object> getfunction(def test, def test1) {
    def criteria = Test.createCriteria();
    criteria.list {
        projections{
            groupProperty('state')
            rowCount()
        }
    }
}

return 语句是可选的。当没有 return 语句时,无论最后一个表达式的计算结果如何,都会返回。

我希望这会有所帮助。

于 2014-07-08T13:59:21.027 回答