Java开发笔记之Lombok使用@Data出现空指针NullPointerException

2022-05-16 08:06:13 浏览数 (1)

0x00 概述

在代码运行过程中,使用lombok的@Data处报错NullPointerException空指针异常。

0x01 问题表现

代码在IDEA中运行没问题,结果显示正常;

但是在打jar包后,运行就会空指针异常,报错如下:

代码语言:javascript复制
Exception in thread "main" java.lang.NullPointerException

根据报错日志,定位到具体类的@Data代码处,该类由于排名需要,重写了compareTo方法,进行了排序计算;

0x02 解决过程

经搜索后这是Lombok使用@Data的一个大坑,详细见Lombok使用@Data的大坑,空指针错误;

代码语言:javascript复制
/**
原因是:

@Data注解中有默认toString方法的重写,展示数据时,默认调用get方法的方式。

所以当你的get方法中有计算或者调用时,而你的属性值是null,就会报错。

代码中未对传入对象和数据进行判断是否null,当传参为null走get方法时,出错了。

所以应该在传参或者类实例化时候进行过滤,对null值进行排除
*/

按照方法2解决后,发现jar包运行还是继续报NullPointerException空指针异常,错误日志没有变化;

检查代码后发现,代码逻辑中仍有部分代码未进行null值排除,逐一进行更正,再次打jar包后,运行正常。

0 人点赞