背景
新上线了一个需求后,发现时不时的有一些NullPointerException报出来,跟踪后发现都是在一个地方报出来的
org.springframework.beans.BeanInstantiationException: Failed to instantiate [net.lingyejun.mall.domain.book.req.BookInfoReqDto]: Constructor threw exception; nested exception is java.lang.NullPointerException: bookId
根据错误的堆栈信息,找到对应的类,第一眼没有返现什么问题,但是错误是由于构造方法内部报出来的,所以我们查看编译后的.class文件,发现这个类的构造方法,居然是参数为空就直接抛出NullPointerException
public BookInfoReqDto(@NonNull Long bookId){ if(bookId == null){ throw new NullPointerException("bookId"); }else { this.bookId = bookId; } }
原来是有人用错注解了
@NonNull使用错注解了,应该用@NotNull,注意二者所源自的包是不同的。
import lombok.NonNull;
import javax.validation.constraints.NotNull;
本篇文章如有帮助到您,请给「翎野君」点个赞,感谢您的支持。
首发链接:https://www.cnblogs.com/lingyejun/p/17410583.html
标签:非空,NonNull,bookId,NPE,错误,NotNull,注解,NullPointerException From: https://www.cnblogs.com/lingyejun/p/17410583.html