验证对象时出现NullPointerException

时间:2016-12-31 21:14:42

标签: java nullpointerexception

验证对象时,我得到 NullPointerException 。我发送给控制器dto,并在验证时。我不能理解问题出在哪里,因为进入validate方法的产品不是null,Validator代码:

    request.on("data",function(chunk){
        response.write(chunk.toString().toUpperCase()) ;
    })

我得到了这个

  

显示java.lang.NullPointerException     com.shop.validator.ProductValidator.validate(ProductValidator.java:27)     com.shop.controller.ProductController.createProduct(ProductController.java:82)     com.shop.controller.ProductController $$ FastClassBySpringCGLIB $$ c0d382c4.invoke()     org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)

1 个答案:

答案 0 :(得分:2)

||从左到右进行评估。所以,如果你说

x == null || x.somethingSomething()

如果x为null,则第一个条件将捕获大小写,并且它将阻止对null引用的方法调用发生。但如果你说

x.somethingSomething() || x == null

如果x为null,它会先尝试计算方法调用,然后在进入null检查之前抛出异常。 Java(或我所知道的任何其他计算机语言)都不够聪明,以及“#34;"首先进行空检查。它信任你给它的顺序。

&&类似:

if (x != null && x.something())

会在合适的时间进行空检查,但

if (x.something() && x != null)

赢得'吨。