访问域对象的属性时抛出空指针异常

时间:2015-07-08 09:20:14

标签: grails

在控制器内我只测试这两行。 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:

我感谢任何帮助。谢谢!

1 个答案:

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