验证对象时,我得到 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)
答案 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)
赢得'吨。