【发布时间】:2013-06-21 22:30:38
【问题描述】:
我正在开发一个 grails 应用程序,并且我已经有一个域类“ExtendedUser”,其中包含有关用户的信息,例如:“name”、“bio”、“birthDate”。现在我打算对用户的年龄进行统计,所以我创建了另一个控制器“StatisticsController”,想法是将所有出生日期存储在本地数组中,这样我就可以用它管理多个计算
class StatisticsController {
// @Secured(["ROLE_COMPANY"])
def teststat(){
def user = ExtendedUser.findAll() //A list with all of the users
def emptyList = [] //AN empty list to store all the birthdates
def k = 0
while (k<=user.size()){
emptyList.add(user[k].birthDate) //Add a new birthdate to the emptyList (The Error)
k++
}
[age: user]
}
}
当我测试时,它向我显示此错误消息:Cannot get property 'birthDate' on null object 所以我的问题是如何将所有生日存储在一个数组或列表中,以便我可以用它进行计算。谢谢
【问题讨论】:
-
所有这些替代解决方案都有效,但是您收到错误的原因是您让 k 在等于 user.size() 时通过循环,并且此时 user[k]不在列表的末尾。如果 user.size() == 3,则存在 user[0]、user[1] 和 user[2],但不存在 user[3]。将 k
标签: arrays list grails groovy controller