在控制器内我只测试这两行。 RaceRegistration域具有属性compositeEvent。因此,我首先访问注册域,然后使用.compositeEvent访问复合事件。
println (RaceRegistration.get(r.toLong()))
println (RaceRegistration.get(r.toLong())).compositeEvent
抛出以下错误。正如您所看到的那样,第一个打印成功,即它获得了注册域,但第二个println失败了。我的问题是,当我们确定RaceRegistration域被成功访问时,为什么它会抛出空指针。
com.runnercard.registration.RaceRegistration : 8
ERROR errors.GrailsExceptionResolver: NullPointerException occurred when processing request: [POST] /roadrace/message/sendEmail - parameters:
我感谢任何帮助。谢谢!
答案 0 :(得分:2)
Null为空。不要怀疑:这是真的。
' void' println
表达式的计算结果为null,失败的代码大致等同于以下内容:
x = println (RaceRegistration.get(r.toLong()))
// x is null - so the following results in a NullPointerException
x.compositeEvent
括号可能只是在错误的位置(or even over-specified):
println (RaceRegistration.get(r.toLong()).compositeEvent)
// -or
println RaceRegistration.get(r.toLong()).compositeEvent