最近做Spring Boot项目分页的时候出现了一个空指针异常,索性把后台所有的逻辑都走了一遍还是没有发现问题所在,所以直接就百度查找原因,网上大部分是依赖注入时注入的对象没有加注解@Autowire,另外还有一个原因是Controller层接收对象前没有给对象赋值,从这两个错误点寻找依然没有什么发现。但这个时候我大致的判断是某个对象没有赋值或者是赋值过程中出现的问题,然后再仔细地再检查了一遍,最终在数据封装类Dto中发现了自己的问题,原来是集合定义时没有为它开辟内存空间。
问题:(定义了List集合并没有为它开辟内存空间)
private List<Integer> pages;
纠正:
private List<Integer> pages=new ArrayList<>();
原因:普通数据类型(byte,short,int,long,float,double,char,boolean)储存一个数据时java就在栈中为这个变量分配内存空间,而List属于集合对象,Java如果使用则必须通过实例化为它在堆中开辟内存。