invoke方法 data数据为空
仅个人开发时遇到的问题!!
@Override
public void invoke(T data, AnalysisContext context) {
if(isEmpty(data)){
LOGGER.info("解析到空白行,跳过");
return;
}
LOGGER.info("解析到一条头数据:{}", JSON.toJSONString(data));
list.add(data);
// 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM
if (list.size() >= BATCH_COUNT) {
saveData();
// 存储完成清理 list
list.clear();
}
}
在这里我读取data的时候出现空值
@Data
@EqualsAndHashCode(callSuper = false)
@NoArgsConstructor
@Accessors(chain = true)
@AllArgsConstructor
public class CarEntity {
/**
* 车牌号
*/
@ExcelProperty("车牌号")
private String plateNo;
/**
* 车主姓名
*/
@ExcelProperty("车主姓名")
private String owners;
/**
* 车主身份证号码
*/
@ExcelProperty("车主身份证号码")
private String ownersIDCard;
/**
* 车主联系方式
*/
@ExcelProperty("车主联系方式")
private Integer phone;
/**
* 备注
*/
@ExcelProperty("备注")
private String note;
}
这是接受,处理数据的实现类
@Accessors(chain = true)
最后发现是这个注解的问题让data内部数据为空,可能是与EasyExcel产生冲突的原因。